It is the reality. It is true that there are some crates this prevents you from using, but that's a consequence of how async/await works. It is not compatible with all other crates.
You can try to use block_in_place
, but as I mentioned before, it's a footgun due to its extra non-local requirements.
There are no other possible solutions than what is offered by block_in_place
. It is simply theoretically impossible to fix it in any other way besides completely changing how async/await is implemented.