The way, the CS batching in `TransportRolloverAction` is written is broken for large batches of tasks. Each task result will contain the cluster state after applying the task. This consumes unmanageable amounts of memory for large cluster states if a larger number of rollovers gets batched, causing master nodes to run out of heap from endless `RolloverResult` getting retained.

<img width="691" alt="image" src="https://user-images.githubusercontent.com/6490959/193704411-85979256-69bf-4db4-818e-f5d8d7888605.png">

We must find a way to not retain cluster states like this in the task results.
server/src/main/java/org/elasticsearch/action/admin/indices/rollover/TransportRolloverAction.java
listener.onResponse(trialRolloverResponse);
                    return;
                }
                
                if (rolloverRequest.areConditionsMet(trialConditionResults)) {
                    String source = "rollover_index source [" + trialRolloverIndexName + "] to target [" + trialRolloverIndexName + "]";
                    RolloverTask rolloverTask = new RolloverTask(rolloverRequest, statsResponse, trialRolloverResponse, listener);
                    ClusterStateTaskConfig config = ClusterStateTaskConfig.build(Priority.NORMAL, rolloverRequest.masterNodeTimeout());
                    clusterService.submitStateUpdateTask(source, rolloverTask, config, rolloverTaskExecutor);
                } else {
                    
                    listener.onResponse(trialRolloverResponse);
                }
            }, listener::onFailure)
        );
    }
    static Map<String, Boolean> evaluateConditions(final Collection<Condition<?>> conditions, @Nullable final Condition.Stats stats) {
        Objects.requireNonNull(conditions, "conditions must not be null");
        if (stats != null) {
            return conditions.stream()
                .map(condition -> condition.evaluate(stats))
                .collect(Collectors.toMap(result -> result.condition().toString(), Condition.Result::matched));
        } else {
            
            return conditions.stream().collect(Collectors.toMap(Condition::toString, cond -> false));
        }
    }
    static Condition.Stats buildStats(@Nullable final IndexMetadata metadata, @Nullable final IndicesStatsResponse statsResponse) {
        if (metadata == null) {
            return null;