Dispatch invocation callbacks to new thread in .NET client

- This fixes the issue with awaiting an Invoke call and then calling Stop()
- #2653