Currently, `TransportGetShutdownStatusAction` is executed in a transport thread, this action can do a substantial amount of work (O(# shards) in some cases) in the transport thread preventing pending transport tasks to make progress and potentially causing cluster instability. This action should be dispatched into a different thread pool to avoid such issues.
x-pack/plugin/shutdown/src/test/java/org/elasticsearch/xpack/shutdown/TransportGetShutdownStatusActionTests.java
return createTestClusterState(indexRoutingTable, indices, shutdownType, false);
    }
    private ClusterState createTestClusterState(
        RoutingTable indexRoutingTable,
        List<IndexMetadata> indices,
        SingleNodeShutdownMetadata.Type shutdownType,
        boolean shuttingDownNodeAlreadyLeft
    ) {
        Map<String, IndexMetadata> indicesTable = indices.stream().collect(toMap(imd -> imd.getIndex().getName(), Function.identity()));
        DiscoveryNodes.Builder discoveryNodesBuilder = DiscoveryNodes.builder()
            .add(
                DiscoveryNode.createLocal(
                    Settings.builder().put(Node.NODE_NAME_SETTING.getKey(), LIVE_NODE_ID).build(),
                    new TransportAddress(TransportAddress.META_ADDRESS, 9201),
                    LIVE_NODE_ID
                )
            )
            .add(
                DiscoveryNode.createLocal(
                    Settings.builder().put(Node.NODE_NAME_SETTING.getKey(), OTHER_LIVE_NODE_ID).build(),
                    new TransportAddress(TransportAddress.META_ADDRESS, 9202),
                    OTHER_LIVE_NODE_ID
                )
            );
        if (shuttingDownNodeAlreadyLeft == false) {
            discoveryNodesBuilder.add(
                DiscoveryNode.createLocal(
                    Settings.builder().put(Node.NODE_NAME_SETTING.getKey(), SHUTTING_DOWN_NODE_ID).build(),
                    new TransportAddress(TransportAddress.META_ADDRESS, 9200),
                    SHUTTING_DOWN_NODE_ID