Have you considered algebraic effects and handlers? If you add a linearity restriction on the return continuations (easily doable with the existing type system of Rust) their implementation is no harder than async/await, yet they can express many useful monadic abstractions.
...I saw this thread too late, hopefully you will still see this comment. I'm genuinely curious.