The following invocation seems to stabilise very well, generating overwhelmingly many events for the linearizability checker to check, leading to an OOME:

`./gradlew ':server:test' --tests "org.elasticsearch.cluster.coordination.AtomicRegisterCoordinatorTests.testAppliesNoMasterBlockAllIfConfigured" -Dtests.seed=9BFB03AB5780EC10`

Seen on a recent commit to `main`, 1fef466f50d9936b6cfe8295e943f1a6c3f6f2f2.
test/framework/src/main/java/org/elasticsearch/cluster/coordination/AbstractCoordinatorTestCase.java
return Optional.empty();
        }
    };
    public void testRegisterSpecConsistency() {
        assertThat(spec.initialState(), equalTo(0L));
        assertThat(spec.nextState(7, 42, 7), equalTo(Optional.of(42))); 
        assertThat(spec.nextState(7, 42, null), equalTo(Optional.of(42))); 
        assertThat(spec.nextState(7, null, 7), equalTo(Optional.of(7))); 
        assertThat(spec.nextState(7, null, null), equalTo(Optional.of(7))); 
        assertThat(spec.nextState(7, null, 42), equalTo(Optional.empty()));
    }
    /**
     * A wrapper around a {@link Recycler<BytesRef>} which tracks the refs it allocates so they can be released if the node reboots.
     */
    static class ClearableRecycler implements Recycler<BytesRef> {
        private final Recycler<BytesRef> delegate;
        private final Set<V<BytesRef>> trackedRefs = new HashSet<>();
        ClearableRecycler(Recycler<BytesRef> delegate) {
            this.delegate = delegate;
        }
        @Override
        public V<BytesRef> obtain() {
            V<BytesRef> innerRef = delegate.obtain();
            final V<BytesRef> trackedRef = new V<>() {
                @Override
                public BytesRef v() {
                    return innerRef.v();
                }
                @Override
                public boolean isRecycled() {