transport: let the progress output return an error

There are any number of issues that can come up in the progress
callback, and we should let the user cancel at that point as well.

/cc @arthurschreiber