I am not really sure how much yet another post complaining about async/await that ends with “thread-per-core is the way to go” adds to this discussion. Granted I’m both an Erlang programmer and a big fan of Tokio and Rust’s async/await implementation in general and I think this post and many others like it betray a fundamental misunderstanding of these technologies so I am probably biased.
Personally I don't want thread-per-core in a general purpuse runtime, I believe C# and Go both do it correctly these days by starting new threads if all existing are busy for too long.