Add step where we block until we get a download url
Going full monad.

The `DataExportTask` is going to run a pipeline of steps,
any of which could fail.  The pattern is already emerging
with try some method, if a failure return it as the correct
type, otherwise continue to the next step.  This sounds like a
monad, so lets just make it that.

I may regret this.