Ensure download tasks properly abort when interrupted.

This should fix a bug where the task's Future was cancelled, but the
task itself continued on because it didn't handle the interrupt.