Yeah, I've used a bunch of non-blocking paradigms over the years and all become painful quickly once the system becomes non-trivial, except for green threads. I was very disappointed that Rust dropped this feature in favour of async.
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.
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.
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?