From deferred execution to cancellation and ConfigureAwait(false), an async LINQ operator has some tricky parts to get correctly.