Today we deserialize and handle all responses from remote clusters on the transport thread. Some of these responses can be sizeable, or require nontrivial work to handle, so we need to move this work to different threads. https://github.com/elastic/elasticsearch/pull/97922 introduces a facility for doing so, and forks some work, but in that PR we could not decide whether to handle CCS-related responses on the `SEARCH` or `SEARCH_COORDINATION` pool. In order to make progress we left this work on the transport worker for now, but we think this is a bug and this computation should be forked elsewhere. Opening this issue to track that followup work.

Once it's decided where to run this work, here's the only bit that needs changing:

https://github.com/elastic/elasticsearch/blob/f4e3113ad00541f084b69664c6476c8fcf737386/server/src/main/java/org/elasticsearch/action/search/TransportSearchAction.java#L470-L471

server/src/main/java/org/elasticsearch/action/search/TransportSearchAction.java
skipUnavailable,
            countDown,
            skippedClusters,
            exceptions,
            clusters.getCluster(clusterAlias),
            originalListener
        ) {
            @Override
            void innerOnResponse(SearchResponse searchResponse) {
                
                ccsClusterInfoUpdate(searchResponse, cluster, skipUnavailable);
                searchResponseMerger.add(searchResponse);
            }
            @Override
            SearchResponse createFinalResponse() {
                return searchResponseMerger.getMergedResponse(clusters);
            }
        };
    }
    /**
     * Creates a new Cluster object using the {@link ShardSearchFailure} info and skip_unavailable
     * flag to set Status. The new Cluster object is swapped into the clusterRef {@link AtomicReference}.
     */
    static void ccsClusterInfoUpdate(
        ShardSearchFailure failure,
        AtomicReference<SearchResponse.Cluster> clusterRef,
        boolean skipUnavailable
    ) {
        SearchResponse.Cluster.Status status;
        if (skipUnavailable) {