Fixing unhandled exception when calling channel.Open() with no network connection

- Subscribing to OnError event handler to fix unhandled exception when calling channel.Open() and network connection is not available.
- Adding ConnectionError event.
- Completing connect task on ConnectionEstablished and ConnectionError event.