SE-0296: async/await

I agree with @nuclearace, If promise makes it to the standard library, it won't be directly through async/await.

async let is a building block of Structured Concurrency. It starts a child task, that can't outlive its parent.
In that configuration cancellation is mostly handled by Swift.