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/test/java/org/elasticsearch/action/support/broadcast/node/TransportBroadcastByNodeActionTests.java
action = new TestTransportBroadcastByNodeAction("indices:admin/shard_level_test") {
            int expectedShardId;
            @Override
            protected void shardOperation(Request request, ShardRouting shardRouting, Task task, ActionListener<ShardResult> listener) {
                
                if (task instanceof CancellableTask cancellableTask) {
                    assertEquals(expectedShardId++, shardRouting.shardId().id());
                    switch (shardRouting.shardId().id()) {
                        case 0 -> {
                            assertFalse(cancellableTask.isCancelled());
                            listener.onResponse(new ShardResult());
                        }
                        case 1 -> {
                            assertFalse(cancellableTask.isCancelled());
                            TaskCancelHelper.cancel(cancellableTask, "simulated");
                            if (randomBoolean()) {
                                listener.onResponse(new ShardResult());
                            } else {
                                assertTrue(cancellableTask.notifyIfCancelled(listener));
                            }
                        }
                        default -> fail("unexpected shard execution: " + shardRouting);
                    }
                } else {
                    fail("task was not cancellable");
                }
            }
        };
        final PlainActionFuture<TransportResponse> nodeResponseFuture = new PlainActionFuture<>();
        action.new BroadcastByNodeTransportRequestHandler().messageReceived(