#98420 verifies that the election scheduler is not running when a cluster is stable, but this assertion does not hold in the `AtomicRegisterCoordinatorTests` suite. This issue tracks the work to investigate and fix up the problem.
test/framework/src/main/java/org/elasticsearch/cluster/coordination/AbstractCoordinatorTestCase.java
@Override
        public void onNewClusterState(String source, Supplier<ClusterState> clusterStateSupplier, ActionListener<Void> listener) {
            if (clusterStateApplyResponse == ClusterStateApplyResponse.HANG) {
                if (randomBoolean()) {
                    
                    super.onNewClusterState(source, clusterStateSupplier, ActionListener.noop());
                }
            } else {
                super.onNewClusterState(source, clusterStateSupplier, listener);
            }
        }
        @Override
        protected void connectToNodesAndWait(ClusterState newClusterState) {
            connectToNodesAsync(newClusterState, () -> {
                
                
            });
        }
        @Override
        protected boolean applicationMayFail() {
            return this.applicationMayFail;
        }
        void allowClusterStateApplicationFailure() {
            this.applicationMayFail = true;
        }
    }
    protected static final Set<DiscoveryNodeRole> ALL_ROLES_EXCEPT_VOTING_ONLY = DiscoveryNodeRole.roles()
        .stream()
        .filter(r -> r.equals(DiscoveryNodeRole.VOTING_ONLY_NODE_ROLE) == false)
        .collect(Collectors.toUnmodifiableSet());