### 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/cluster/coordination/CoordinationDiagnosticsService.java
* This is called here to cover an edge case -- when there are master-eligible nodes in the cluster but none of them has been
         * elected master. In the most common case this node will receive a ClusterChangedEvent that results in this polling being
         * cancelled almost immediately. If that does not happen, then we do in fact need to be polling. Unfortunately there is no way to
         * tell at this point whether this node is master-eligible or not, so we kick this off regardless. On master-eligible nodes the
         * results will always be harmlessly ignored. Note that beginPollingRemoteMasterStabilityDiagnostic results in several internal
         * transport actions being called, so it must run in the system context.
         */
        if (clusterService.localNode().isMasterNode() == false) {
            final ThreadContext threadContext = transportService.getThreadPool().getThreadContext();
            try (ThreadContext.StoredContext ignored = threadContext.stashContext()) {
                threadContext.markAsSystemContext();
                beginPollingRemoteMasterStabilityDiagnostic();
            }
        }
        clusterService.addListener(this);
    }
    /**
     * This method calculates the master stability as seen from this node.
     * @param explain If true, the result will contain a non-empty CoordinationDiagnosticsDetails if the resulting status is non-GREEN
     * @return Information about the current stability of the master node, as seen from this node
     */
    public CoordinationDiagnosticsResult diagnoseMasterStability(boolean explain) {
        MasterHistory localMasterHistory = masterHistoryService.getLocalMasterHistory();
        if (hasSeenMasterInHasMasterLookupTimeframe()) {
            return diagnoseOnHaveSeenMasterRecently(localMasterHistory, explain);
        } else {
            return diagnoseOnHaveNotSeenMasterRecently(localMasterHistory, explain);
        }
    }
    /**