Check the return codes of remote callbacks.

The user may have requested that the operation be cancelled.
Rename progress callback to sideband_progress
Don't redefine the same callback types, their signatures may change