Dispose shouldn't throw after a call to Disconnect

Previously, the cancelation token would throw an ObjectDisposedException
when Disposed is called after Disconnect