Unfortunately this does not cause the onError() call back to be executed, onStart executes correctly before the post to the server, and then onComplete executes once the response is received. BTW, there is a helper function @ErrorMessage that encapsulates much of the work related to the facesContext.addMessage stuff.
I was able to get the error message to show in an xp:messages control, if it was within the context being refreshed (this action only does a partial refresh). Ideally I would have a single error control that displays a dialog when there is something to report, and I could cascade the partial refresh in my onError callback.
Rich