Use ThrowIfCancellationRequested
Cancel our tasks early if we get the chance
WHY IS THIS NOT THE DEFAULT OMFG
Merge pull request #28 from paulcbetts/clean-up-cancellation

Clean up cancellation