Fixes a couple of bugs for when a task becomes a download task

If a task becomes a download task. None of the old delegate methods for the old task will get called. This means it wont remove the observer and it will not delete the delegate.

We never setup the new task with observing and it’s delegate either.