I have to disagree. Async may makes concurrent code easier to write, but also less simple to reason about as it grows. In a complex async codebase, I find it harder to reason about code flow and concurrency.
If the goal is to reduce the cost of executing threaded code, we have a solution in green light weight threads.
If we aim to reduce the cost of maintaining threaded code, I expect async to end up costing more effort in the long run.