Soooo when we used to get responses from server method invocations we would trigger the OnReceived C# client method.  Now the problem with that is if the C# client method threw the exception would be wrapped by the returning task, therefore you'd always get an aggregate exception in your connection.OnError.

So now that we try catch inside of the OnReceived no matter the method of calling OnReceived, if you throw we will always give you the correct exception in your connection.OnError.  So we now no longer need to check if the exception is an aggregate because we can expect to get the exact exception that was thrown.  I decided to make the exception an invalid operation exception to prevent any false positives in test runs