async/await is confusing in every language it is implemented in. Whoever came up with this paradigm has (or at the time, had) zero idea about usability. It is the programming equivalent of the programmer user interface. Makes perfect sense to the one person because they wrote it; it’s an enormous pain for everyone else.
Raw threads and doing everything manually makes far more sense to me.
And of course Goroutines in Go make the most sense but they’re not as performant as something like Zig by any means.