### CI Link

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

### Repro line

gradlew ':x-pack:plugin:spatial:internalClusterTest' --tests "org.elasticsearch.xpack.spatial.search.GeoGridAggAndQueryConsistencyIT.testGeoShapeGeoHex" -Dtests.seed=67641D5B7DA4755B -Dtests.locale=en-IN -Dtests.timezone=Canada/Saskatchewan -Druntime.java=17 -Dtests.fips.enabled=true

### Does it reproduce?

No

### Applicable branches

main

### Failure history

_No response_

### Failure excerpt

The test in CI link above doesn't repro for me but I did run the test with multiple iterations. After around 250 of them, one failed for me:

```
REPRODUCE WITH: gradlew ':x-pack:plugin:spatial:internalClusterTest' --tests "org.elasticsearch.xpack.spatial.search.GeoGridAggAndQueryConsistencyIT.testGeoShapeGeoHex {seed=[3478FF74E8D66BB6:A2F98EBD906145BB]}" -Dtests.seed=3478FF74E8D66BB6 -Dtests.locale=sr-RS -Dtests.timezone=Europe/Luxembourg -Druntime.java=19

org.elasticsearch.xpack.spatial.search.GeoGridAggAndQueryConsistencyIT > testGeoShapeGeoHex {seed=[3478FF74E8D66BB6:A2F98EBD906145BB]} FAILED
    java.lang.AssertionError: Expected hits at precision 15
    Expected: <3L>
         but: was <4L>
        at __randomizedtesting.SeedInfo.seed([3478FF74E8D66BB6:A2F98EBD906145BB]:0)
        at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:18)
        at org.junit.Assert.assertThat(Assert.java:956)
        at org.elasticsearch.xpack.spatial.search.GeoGridAggAndQueryConsistencyIT.assertQuery(GeoGridAggAndQueryConsistencyIT.java:224)
        at org.elasticsearch.xpack.spatial.search.GeoGridAggAndQueryConsistencyIT.doTestGrid(GeoGridAggAndQueryConsistencyIT.java:215)
        at org.elasticsearch.xpack.spatial.search.GeoGridAggAndQueryConsistencyIT.doTestGeohexGrid(GeoGridAggAndQueryConsistencyIT.java:124)
        at org.elasticsearch.xpack.spatial.search.GeoGridAggAndQueryConsistencyIT.testGeoShapeGeoHex(GeoGridAggAndQueryConsistencyIT.java:92)
```
x-pack/plugin/spatial/src/internalClusterTest/java/org/elasticsearch/xpack/spatial/search/GeoGridAggAndQueryConsistencyIT.java
0,
            maxPrecision,
            fieldType,
            (precision, point) -> GeoTileUtils.stringEncode(GeoTileUtils.longEncode(point.getLon(), point.getLat(), precision)),
            tile -> toPoints(GeoTileUtils.toBoundingBox(tile)),
            GeoTileUtils::toBoundingBox,
            GeoTileGridAggregationBuilder::new,
            (s1, s2) -> new GeoGridQueryBuilder(s1).setGridId(GeoGridQueryBuilder.Grid.GEOTILE, s2),
            randomGeometriesSupplier
        );
    }
    private void doTestGeohexGrid(String fieldType, Supplier<Geometry> randomGeometriesSupplier) throws IOException {
        doTestGrid(1, H3.MAX_H3_RES, fieldType, (precision, point) -> H3.geoToH3Address(point.getLat(), point.getLon(), precision), h3 -> {
            final CellBoundary boundary = H3.h3ToGeoBoundary(h3);
            final List<Point> points = new ArrayList<>(boundary.numPoints());
            for (int i = 0; i < boundary.numPoints(); i++) {
                points.add(new Point(boundary.getLatLon(i).getLonDeg(), boundary.getLatLon(i).getLatDeg()));
            }
            return points;
        },
            h3 -> H3CartesianUtil.toBoundingBox(H3.stringToH3(h3)),
            GeoHexGridAggregationBuilder::new,
            (s1, s2) -> new GeoGridQueryBuilder(s1).setGridId(GeoGridQueryBuilder.Grid.GEOHEX, s2),
            randomGeometriesSupplier
        );
    }
    private void doTestGrid(
        int minPrecision,
        int maxPrecision,
        String fieldType,