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
true,
            true,
            request.indicesOptions().expandWildcardsOpen(),
            request.indicesOptions().expandWildcardsClosed()
        );
        return state.blocks()
            .indicesBlockedException(
                ClusterBlockLevel.METADATA_WRITE,
                indexNameExpressionResolver.concreteIndexNames(state, indicesOptions, request)
            );
    }
    @Override
    protected void masterOperation(
        Task task,
        final RolloverRequest rolloverRequest,
        final ClusterState oldState,
        final ActionListener<RolloverResponse> listener
    ) throws Exception {
        assert task instanceof CancellableTask;
        Metadata metadata = oldState.metadata();
        IndicesStatsRequest statsRequest = new IndicesStatsRequest().indices(rolloverRequest.getRolloverTarget())
            .clear()
            .indicesOptions(IndicesOptions.fromOptions(true, false, true, true))
            .docs(true);
        statsRequest.setParentTask(clusterService.localNode().getId(), task.getId());
        
        
        
        
        client.execute(