The following aggregations don't work well with `time_series` aggregation:

- `sampler`
- `composite`

Any aggregation that returns a `LeafBucketCollector.NO_OP_COLLECTOR` instance as leaf collector.

Also the filter by filter optimisation that a number of aggregations perform doesn't work when executing in time series mode.
#91702 already disables this optimisation in case `time_series` agg is used. We should do that also for the mentioned aggregations.

Separately we should also investigate how to make these aggregations and filter by filter optimisation work with `TimeSeriesIndexSearcher`.
server/src/main/java/org/elasticsearch/search/aggregations/bucket/composite/CompositeAggregationBuilder.java
protected AggregatorFactory doBuild(
        AggregationContext context,
        AggregatorFactory parent,
        AggregatorFactories.Builder subfactoriesBuilder
    ) throws IOException {
        AggregatorFactory invalid = validateParentAggregations(parent);
        if (invalid != null) {
            throw new IllegalArgumentException(
                "[composite] aggregation cannot be used with a parent aggregation of"
                    + " type: ["
                    + invalid.getClass().getSimpleName()
                    + "]"
            );
        }
        CompositeValuesSourceConfig[] configs = new CompositeValuesSourceConfig[sources.size()];
        for (int i = 0; i < configs.length; i++) {
            configs[i] = sources.get(i).build(context);
            if (configs[i].valuesSource().needsScores()) {
                throw new IllegalArgumentException("[sources] cannot access _score");
            }
        }
        final CompositeKey afterKey;
        if (after != null) {
            if (after.size() != configs.length) {
                throw new IllegalArgumentException("[after] has " + after.size() + " value(s) but [sources] has " + sources.size());
            }
            @SuppressWarnings("rawtypes")
            Comparable<?>[] values = new Comparable[sources.size()];
            for (int i = 0; i < sources.size(); i++) {
                String sourceName = sources.get(i).name();