Sure, I do hope we can focus on one concurrency primitive, but the possibility that we may have async/await and coroutine at the same time seems kind of unfortunate to me.
AFAICT async/await the way Rust intends to have it (plans are rough right now) basically coroutines with extra sugar to specialize it with futures. The core language won't know about event loops, it will just know about futures, and you wire up your async/await or whatever to the event loop yourself. As both in the context of concurrency will involve futures they will probably work well together.
I'd love to see this goes well with highest performance.
AFAICT It's all going to be a generator-like abstraction which is pretty zero-cost.
The real world is always more complicated, since cps carries stack in its arguments.