https://github.com/elastic/elasticsearch/pull/97304 removes several places that might do an expensive rebuild of the cluster state via `getStateForMasterService`. There's one other call we should be able to remove, in `JoinValidationService`, but it's a little tricky since we rely on seeing the last-accepted state for the cluster UUID validation, and it's not obviously ok to expose the last-accepted state without the no-master block.

This is a fairly minor issue because we do not do this join validation during elections, only if we're the elected master, and in that case `getStateForMasterService` is cheap. But that's not guaranteed, and we should strengthen this to avoid the that expensive step whenever possible.
server/src/main/java/org/elasticsearch/cluster/coordination/Coordinator.java
transportService.sendRequest(
                    destination,
                    COMMIT_STATE_ACTION_NAME,
                    applyCommit,
                    COMMIT_STATE_REQUEST_OPTIONS,
                    new ActionListenerResponseHandler<>(
                        wrapWithMutex(responseActionListener),
                        in -> Empty.INSTANCE,
                        Names.CLUSTER_COORDINATION
                    )
                );
            } catch (Exception e) {
                responseActionListener.onFailure(e);
            }
        }
        @Override
        protected <T> ActionListener<T> wrapListener(ActionListener<T> listener) {
            return wrapWithMutex(listener);
        }
        @Override
        boolean publicationCompletedIffAllTargetsInactiveOrCancelled() {
            assert Thread.holdsLock(mutex) : "Coordinator mutex not held";
            return super.publicationCompletedIffAllTargetsInactiveOrCancelled();
        }
    }
    public interface PeerFinderListener {
        void onFoundPeersUpdated();
    }
}