### Description

The `sendRequest` method is asynchronous and notifies a 
`TransportResponseHandler` when it completes the excecution
(successfully or unsuccessfully). 

When opening the connection we only catch `NodeNotConnectedException`
( https://github.com/elastic/elasticsearch/blob/main/server/src/main/java/org/elasticsearch/transport/TransportService.java#L719 ) which is currently fine as no implementations
throw other type of exception however, it'd be best to catch `Exception` here
so the `handler` gets notified of potential exceptions (as opposed to the caller
having to `try/catch` the call to `sendRequest`)
test/framework/src/main/java/org/elasticsearch/transport/AbstractSimpleTransportTestCase.java
}
            service.acceptIncomingRequests();
            try (Transport.Connection connection = openConnection(serviceA, node, null)) {
                CountDownLatch latch2 = new CountDownLatch(1);
                serviceA.sendRequest(
                    connection,
                    "internal:action",
                    new TestRequest(),
                    TransportRequestOptions.EMPTY,
                    new TransportResponseHandler<TestResponse>() {
                        @Override
                        public TestResponse read(StreamInput in) throws IOException {
                            return new TestResponse(in);
                        }
                        @Override
                        public void handleResponse(TestResponse response) {
                            latch2.countDown();
                        }
                        @Override
                        public void handleException(TransportException exp) {
                            latch2.countDown();
                        }
                    }
                );
                latch2.await();
                assertBusy(() -> assertTrue(requestProcessed.get()));
            }
        }
    }
    public static class TestRequest extends TransportRequest {