### 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/test/java/org/elasticsearch/xpack/spatial/search/aggregations/bucket/geogrid/GeoHexTilerTests.java
GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(tile.getMinLon()))
            ),
            new GeoPoint(
                GeoEncodingUtils.decodeLatitude(GeoEncodingUtils.encodeLatitude(tile.getMinLat())),
                GeoEncodingUtils.decodeLongitude(GeoEncodingUtils.encodeLongitude(tile.getMaxLon()))
            )
        );
        for (int precision = res; precision < res + 4; precision++) {
            String msg = "Failed " + WellKnownText.toWKT(point) + " at resolution " + res + " with precision " + precision;
            GeoShapeCellValues values = new GeoShapeCellValues(
                makeGeoShapeValues(value),
                getBoundedGridTiler(boundingBox, precision),
                NOOP_BREAKER
            );
            assertTrue(values.advanceExact(0));
            long[] h3bins = ArrayUtil.copyOfSubArray(values.getValues(), 0, values.docValueCount());
            assertCorner(h3bins, new Point(tile.getMinLon(), tile.getMinLat()), precision, msg);
            assertCorner(h3bins, new Point(tile.getMaxLon(), tile.getMinLat()), precision, msg);
            assertCorner(h3bins, new Point(tile.getMinLon(), tile.getMaxLat()), precision, msg);
            assertCorner(h3bins, new Point(tile.getMaxLon(), tile.getMaxLat()), precision, msg);
        }
    }
    
    public void testTroublesomeShapeAlmostWithinSouthPole_BoundedGeoShapeCellValues() throws Exception {
        int precision = 1;
        String polygon = """
            POLYGON((180.0 -90.0, 180.0 -73.80002960532788, 1.401298464324817E-45 -73.80002960532788,
            1.401298464324817E-45 -90.0, 180.0 -90.0))""";
        GeoBoundingBox geoBoundingBox = new GeoBoundingBox(
            new GeoPoint(19.585157879020088, 0.9999999403953552),