### 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`)
server/src/main/java/org/elasticsearch/transport/TransportService.java
} catch (final Exception ex) {
            handleSendRequestException(connection, action, handler, ex);
        }
    }
    private <T extends TransportResponse> void handleSendRequestException(
        Transport.Connection connection,
        String action,
        TransportResponseHandler<T> handler,
        Exception ex
    ) {
        
        final TransportException te;
        if (ex instanceof TransportException tex) {
            te = tex;
        } else {
            te = new SendRequestTransportException(connection.getNode(), action, ex);
        }
        handler.handleException(te);
    }
    /**
     * Returns either a real transport connection or a local node connection if we are using the local node optimization.
     * @throws NodeNotConnectedException if the given node is not connected
     */
    public Transport.Connection getConnection(DiscoveryNode node) {
        if (isLocalNode(node)) {
            return localNodeConnection;
        } else {
            return connectionManager.getConnection(node);
        }
    }