### CI Link

https://gradle-enterprise.elastic.co/s/jw2osfn3o4ork

### Repro line

`gradlew ':x-pack:plugin:esql:internalClusterTest' --tests "org.elasticsearch.xpack.esql.action.EsqlActionTaskIT.testCancelRead" -Dtests.seed=F9D81006206BDA07 -Dtests.locale=und -Dtests.timezone=CST -Druntime.java=20`

### Does it reproduce?

No

### Applicable branches

main

### Failure history

_No response_

### Failure excerpt

This doesn't reproduce, even though I've tried using both seeds (from inside IntelliJ) and running the test multiple times with other random seeds.

```
org.elasticsearch.xpack.esql.action.EsqlActionTaskIT > testCancelRead FAILED
    java.lang.Error: Maximum permit count exceeded
        at __randomizedtesting.SeedInfo.seed([F9D81006206BDA07:6CF5A28298786366]:0)
        at java.base/java.util.concurrent.Semaphore$Sync.tryReleaseShared(Semaphore.java:198)
        at java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.releaseShared(AbstractQueuedSynchronizer.java:1146)
        at java.base/java.util.concurrent.Semaphore.release(Semaphore.java:619)
        at org.elasticsearch.xpack.esql.action.EsqlActionTaskIT.cancelTask(EsqlActionTaskIT.java:200)
        at org.elasticsearch.xpack.esql.action.EsqlActionTaskIT.testCancelRead(EsqlActionTaskIT.java:161)
```
x-pack/plugin/esql/src/internalClusterTest/java/org/elasticsearch/xpack/esql/action/EsqlActionTaskIT.java
mapping.startObject("runtime");
        {
            mapping.startObject("pause_me");
            {
                mapping.field("type", "long");
                mapping.startObject("script").field("source", "").field("lang", "pause").endObject();
            }
            mapping.endObject();
        }
        mapping.endObject();
        client().admin().indices().prepareCreate("test").setSettings(Map.of("number_of_shards", 1)).setMapping(mapping.endObject()).get();
        BulkRequestBuilder bulk = client().prepareBulk().setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE);
        for (int i = 0; i < NUM_DOCS; i++) {
            bulk.add(client().prepareIndex("test").setId(Integer.toString(i)).setSource("foo", i));
        }
        bulk.get();
    }
    @AwaitsFix(bugUrl = "the task status is only updated after max_iterations")
    public void testTaskContents() throws Exception {
        ActionFuture<EsqlQueryResponse> response = startEsql();
        getTasksStarting();
        List<TaskInfo> foundTasks = getTasksRunning();
        int luceneSources = 0;
        int valuesSourceReaders = 0;
        int exchangeSources = 0;
        int exchangeSinks = 0;
        for (TaskInfo task : foundTasks) {
            DriverStatus status = (DriverStatus) task.status();
            assertThat(status.sessionId(), not(emptyOrNullString()));
            for (DriverStatus.OperatorStatus o : status.activeOperators()) {