As note to others - As a workaround, Moto Support suggested that we deal with this situation by handling the error with a rescue in the login method, but storing the fact that we'd experienced an error in an instance variable. That instance variable could then be used in subsequent methods (create, update, delete, query etc) to raise an error from there and handle as before.
We're yet to get this working correctly, but in principle, this seems to be a valid approach.
Yes, the "login-error" and "logoff-error" were added to rhoconnect but never handled on the client (they are not used very often). You can use this workaround and we hope to have it fixed in v4.2.