Adding a new task for completion blocks on tasks. The API for cancellation still feels pretty murky as it's exposing the ISCacheTask at the moment (which it probably shouldn't).