Couldn't you perhaps make an async runtime that isn't async and just blocks? That would let you keep only the async interface.
https://nullderef.com/blog/rust-async-sync/#_duplicating_the...