Just got a bunch of instances of this suite timing out all on Windows agents. Could be a coincidence but seems unlikely.

**Build scan:**
https://gradle-enterprise.elastic.co/s/rvfpi7upehqjk/tests/:x-pack:plugin:esql:test/org.elasticsearch.xpack.esql.expression.function.scalar.nulls.CoalesceTests
**Reproduction line:**
```
null
```

**Applicable branches:**
main

**Reproduces locally?:**
Didn't try

**Failure history:**
https://gradle-enterprise.elastic.co/scans/tests?tests.container=org.elasticsearch.xpack.esql.expression.function.scalar.nulls.CoalesceTests&tests.test=classMethod
**Failure excerpt:**
```
java.lang.Exception: Suite timeout exceeded (>= 2400000 msec).

  at __randomizedtesting.SeedInfo.seed([546AEE28130887AC]:0)

```
x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/expression/function/AbstractFunctionTestCase.java
* Adds cases with {@code null} and asserts that the result is {@code null}.
     * <p>
     *     Note: This won't add more than a single null to any existing test case,
     *     just to keep the number of test cases from exploding totally.
     * </p>
     * @param  entirelyNullPreservesType should a test case that only contains parameters
     *                                   with the {@code null} type keep it's expected type?
     *                                   This is <strong>mostly</strong> going to be {@code true}
     *                                   except for functions that base their type entirely
     *                                   on input types like {@link Greatest} or {@link Coalesce}.
     */
    protected static List<TestCaseSupplier> anyNullIsNull(boolean entirelyNullPreservesType, List<TestCaseSupplier> testCaseSuppliers) {
        for (TestCaseSupplier s : testCaseSuppliers) {
            if (s.types() == null) {
                throw new IllegalArgumentException("types required");
            }
        }
        List<TestCaseSupplier> suppliers = new ArrayList<>(testCaseSuppliers.size());
        suppliers.addAll(testCaseSuppliers);
        /*
         * For each original test case, add as many copies as there were
         * arguments, replacing one of the arguments with null and keeping
         * the others.
         *
         * Also, if this was the first time we saw the signature we copy it
         * *again*, replacing the argument with null, but annotating the
         * argument's type as `null` explicitly.
         */
        Set<List<DataType>> uniqueSignatures = new HashSet<>();
        for (TestCaseSupplier original : testCaseSuppliers) {