Use a context manager to prevent multiple connections or simultaneous connections.

Because of threading limitations on the Windows side which force us to run a single threaded server, and an issue in RPyC in which the server appears not to respond if you immediately close and reopen a connection (not to mention the relative inefficiency of this operation), we wrap all RPCs in this context manager, which behaves like a recursive lock.
Start Dictation in Foreground as an AppleScript.

Either bring VMware Fusion to the foreground (if no text is selected in the frontmost application) or invoke the service by selecting the service item from the menu, which now has no keyboard equivalent of its own (if text is selected in the frontmost application).