I'm pretty sure that the memory orderings uses in the thread park / unpark are incorrect. They happen to work on x86 due to the generated ASM being stronger than the spec, but it will doubtfully work on other architectures.
There are a few locations where a store is used with SeqCst assuming that this would "acquire", but this is not the case. For example here
I discovered this issue when a PR was provided to copy the Rust code into Tokio.
See the discussion here