I think you need a way to be explicit on which override you want to call.
So in addition to the await and the implicit sync:
do_something().await;
do_something();
You also need a way to directly call the sync and async version: do_something().sync; // I really want the sync version
do_something().async; // I want the Promise result