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/test/java/org/elasticsearch/cluster/coordination/JoinValidationServiceTests.java
}
                };
                try (var out = new BytesStreamOutput()) {
                    request.writeTo(out);
                    out.flush();
                    final var handler = joiningNodeTransport.getRequestHandlers().getHandler(action);
                    handler.processMessageReceived(
                        handler.newRequest(new NamedWriteableAwareStreamInput(out.bytes().streamInput(), writeableRegistry())),
                        new TestTransportChannel(listener)
                    );
                } catch (Exception e) {
                    listener.onFailure(e);
                }
            }
        };
        final var masterTransportService = masterTransport.createTransportService(
            Settings.EMPTY,
            deterministicTaskQueue.getThreadPool(),
            TransportService.NOOP_TRANSPORT_INTERCEPTOR,
            x -> masterNode,
            null,
            Collections.emptySet()
        );
        final var joinValidationService = new JoinValidationService(Settings.EMPTY, masterTransportService, () -> clusterState, List.of());
        masterTransportService.start();
        masterTransportService.acceptIncomingRequests();
        try {
            final var future = new PlainActionFuture<TransportResponse.Empty>();
            joinValidationService.validateJoin(joiningNode, future);
            assertFalse(future.isDone());