Three interrelated issues here:

- [ ] `TransportBroadcastByNodeAction` derivatives are typically executed via `NodeClient` which bypasses the `TransportService` and therefore does not respect (or even know about) the `executor` parameter which would fork. This means that the coordination work, including grouping all the shards by node, happens on the calling thread. When executed from the REST layer, that's a transport worker. This is #97916, but until that's fixed we need a workaround.

- [ ] The node-level responses are deserialised and processed on the receiving transport worker too.

- [ ] Several of these actions use `SAME` for their executor, bypassing the forking that _does_ exist today.

Relates #77466 
server/src/main/java/org/elasticsearch/action/admin/indices/stats/TransportFieldUsageAction.java
actionFilters,
            indexNameExpressionResolver,
            FieldUsageStatsRequest::new,
            ThreadPool.Names.SAME
        );
        this.indicesService = indexServices;
    }
    @Override
    protected FieldUsageShardResponse readShardResult(StreamInput in) throws IOException {
        return new FieldUsageShardResponse(in);
    }
    @Override
    protected ResponseFactory<FieldUsageStatsResponse, FieldUsageShardResponse> getResponseFactory(
        FieldUsageStatsRequest request,
        ClusterState clusterState
    ) {
        return (totalShards, successfulShards, failedShards, fieldUsages, shardFailures) -> {
            final Map<String, List<FieldUsageShardResponse>> combined = new HashMap<>();
            for (FieldUsageShardResponse response : fieldUsages) {
                combined.computeIfAbsent(response.shardRouting.shardId().getIndexName(), i -> new ArrayList<>()).add(response);
            }
            return new FieldUsageStatsResponse(totalShards, successfulShards, shardFailures.size(), shardFailures, combined);
        };
    }
    @Override
    protected FieldUsageStatsRequest readRequestFrom(StreamInput in) throws IOException {
        return new FieldUsageStatsRequest(in);
    }
    @Override
    protected void shardOperation(