To me, implementing an async api using algebraic effects is the end game. Gets rid of the need of an async keyword and no monads required!
For most PLs, algebraic effects look ideal. Just seems like we're figuring out how to talk about them to users and what the UX should be.
You still need an async effect handler though, which is effectively the same syntax wise.