Fixes a bug where we would await an empty future. Replaces the std::async with a thread and fixes the bug
This affected some of the tests but without any side effects. It however made switcher's watcher quiddity crash in some very specific circumstances.
This alone doesn't fix the issue, there are fixes in the watcher in switcher. too.