For example InMemortyRpcClient can be created with a closed uTransport instance. It calls uTransport.registerListener in constructor which fails and never retried.
Do we want to allow creation of communication wrappers passing not opened uTransport instance? Then we need a callback interface from uTransport to notify its state changes.
Or we must fail wrapper creation with a closed transport as an argument. But then wrapper reference cannot be initialized ahead (before transport is connected) and the code should check for null before using it.