Yes. There are some difficult technical issues. In practice, borrow checker works less well on async code than threaded code.
This is partly why I prefer threading over async in Rust. Look, we went through some enormous effort to make threading good and fun again. Why wouldn't you use threading?