> Your only choice is between coroutines (async tasks spawned on an executor) or regular OS threads.
Thats not true. There are stackgul coroutine libraries in Rust too. I believe there's one called "may". They are admittedly not that widely used, but they are available.
May has unresolvable soundness issues, which is part of why it’s not popular.