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
@Override
                    public void onFailure(Exception e) {
                        logger.log(
                            e instanceof CoordinationStateRejectedException ? Level.DEBUG : Level.WARN,
                            Strings.format(
                                "publication of cluster state version [%d] in term [%d] failed to commit after reaching quorum",
                                publishRequest.getAcceptedState().version(),
                                publishRequest.getAcceptedState().term()
                            ),
                            e
                        );
                    }
                });
                return future;
            });
        }
        @Override
        protected void onJoin(Join join) {
            assert Thread.holdsLock(mutex) : "Coordinator mutex not held";
            if (receivedJoinsProcessed) {
                
                
                handleAssociatedJoin(join);
            } else {
                receivedJoins.add(join);
            }
        }
        @Override
        protected void onMissingJoin(DiscoveryNode discoveryNode) {
            assert Thread.holdsLock(mutex) : "Coordinator mutex not held";