This fixes a runtime error triggered when calling `invokeRpc`:
```
type 'Future<dynamic>' is not a subtype of type 'Future<Map<String, dynamic>>'
```
Also adds a log message for why connections are failing, as well as a
default timeout when attempting to connect to a websocket.