Fixed the disconnect confirmation box blocking the main thread (#18076)
Follow-up to #18044
Summary of the issue:
The Remote Access disconnect confirmation dialog blocks the main thread.
Description of user facing changes
Dialog doesn't block the main thread.
Description of development approach
Undid my change that only called the dialog on the GUI thread, and
instead called the whole disconnect function on the GUI thread (as
@@cary-rowen did). Waiting for the response from the GUI thread still
blocked the main thread, causing NVDA to lock up.
Modified the unit tests to unwrap `RemoteClient.disconnect` before
calling it, so that it runs on the same thread as the unit tests.
Failure to do so causes the tests to fail as the two threads aren't
synchronised. This is why I initially changed this function, but
evidently I wasn't thinking or testing properly.
Testing strategy:
Ran from source, connected as follower, tried to disconnect, ensured I
could still use NVDA and that the process worked as expected.