If you go to
http://jsfiddle.net/vX8uK/ you'll see that you'll have an onbeforeunload event (in GWT, Window.ClosingEvent) before the request is abort with status=0, and then you have the onunload (in GWT, CloseEvent).
That means you can listen to Window.ClosingEvent and set a flag to ignore subsequent errors. In case you have a prompt in Window.ClosingEvent added by other means (e.g. Places & Activities), then you'll have to handle the case where the user canceled the navigation and unset your flag; you can do that, for example, by resetting the flag in case of successful response, and/or listen to some mouse or keyboard events.
To centralize the flag processing, use a custom RequestTransport extending the DefaultRequestTransport and wrapping the RequestCallback to deal with the responses (at the RequestBuilder level, before they're transformed to RequestFactory's Receiver calls)