### Elasticsearch Version

8.9.0

### Installed Plugins

_No response_

### Java Version

_bundled_

### OS Version

all

### Problem Description

In https://github.com/elastic/elasticsearch/pull/96953 we added support for a much more memory efficient algorithm that relies on the time-ordering and grouping provided by the time-series aggregation in TSDB. However, this work only covered the data nodes, and the reduce phase in the coordinating nodes that merges geo_lines does not take this into account, leading to unexpected truncation of long geo_lines.

### Steps to Reproduce

Easiest to reproduce by setting the shard size small, loading very long geolines that will be composed of many data points over many shards, and then setting the geo_line aggregation size to a small size. The final lines will not include the two end points as they should, but be truncated.

### Logs (if relevant)

_No response_
x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/search/aggregations/TimeSeriesGeoLineBuckets.java
private double sortValue;
        private long encoded;
        private SimplifiablePoint(int index, double x, double y, double sortValue) {
            super(index, x, y);
            this.sortValue = sortValue;
            setEncoded(x, y);
        }
        /**
         * The streaming geometry simplifier needs to be able to re-use objects to save memory.
         */
        private StreamingGeometrySimplifier.PointError reset(int index, double x, double y, double sortValue) {
            super.reset(index, x, y);
            this.sortValue = sortValue;
            setEncoded(x, y);
            return this;
        }
        private void setEncoded(double x, double y) {
            this.encoded = (((long) GeoEncodingUtils.encodeLongitude(x)) << 32) | GeoEncodingUtils.encodeLatitude(y) & 0xffffffffL;
        }
    }
    /**
     * Controlled memory version of Line from streaming data.
     * The points array is a re-used array sized to the maximum allowed geo_line length. The length field is the actual
     * length of the geo_line, which could be much shorter. This class allocates the two arrays used internally in
     * the InternalGeoLine aggregation object, and copies the reusable memory into these arrays.
     */
    private static class LineStream implements Geometry {