It makes sense for Rust. Rust with a significant runtime wouldn't provide much value over Go / Kotlin / Java / C#, whereas Rust without a heavy runtime is the first legitimate competitor to the dominance of C / C++.
Isn't Go proof that this works just fine, arguably even better, with the blocking model?
Regarding cancelation, I think Go got it near perfect with contexts, modulo the explicitness of it. What don't you like about it?
In order to do that, you'd have to have an abstraction over the syscalls. I'm not entirely sure this is feasible with all the ins and outs of Rust, but seeing the success of Loom, I'm at least optimistic.
I'd like to see how those platforms will be able to get past that legacy.
This one has been open for 3 years now (and it is probably not the first one), and the completion is nowhere in sight.
It also only targets runtime, but does not yet solve the library compatibility issue.