Wait on storage.Put() to finish via channel

This fixed GDrive functionality, and will potentially be useful for
other storage backends in the future (or a change to an existing storage
backend that adds buffering or more out-of-order processing).