This PR updates OAuth handling to not retry if the request has been cancelled, as no further attempts will work, but the wait delay would still be applied.
Now the cancellation triggers immediately, even if we are in the wait stage.
If the server returns an error message, that message is now propagated to the client so the user can see what the problem might be.