### Description

ShutdownShardMigrationStatus serializes ShardAllocationDecision, which, as of #97803, is chunked. ShardAllocationDecision grows with the number of nodes. Therefore, it would save heap space to chunk ShutdownShardMigrationStatus as well.
x-pack/plugin/shutdown/src/main/java/org/elasticsearch/xpack/shutdown/SingleNodeShutdownStatus.java
this.pluginsStatus = Objects.requireNonNull(pluginsStatus, "plugin status must not be null");
    }
    public SingleNodeShutdownStatus(StreamInput in) throws IOException {
        this.metadata = new SingleNodeShutdownMetadata(in);
        this.shardMigrationStatus = new ShutdownShardMigrationStatus(in);
        this.persistentTasksStatus = new ShutdownPersistentTasksStatus(in);
        this.pluginsStatus = new ShutdownPluginsStatus(in);
    }
    @Override
    public void writeTo(StreamOutput out) throws IOException {
        this.metadata.writeTo(out);
        this.shardMigrationStatus.writeTo(out);
        this.persistentTasksStatus.writeTo(out);
        this.pluginsStatus.writeTo(out);
    }
    public SingleNodeShutdownMetadata.Status overallStatus() {
        return SingleNodeShutdownMetadata.Status.combine(
            migrationStatus().getStatus(),
            pluginsStatus().getStatus(),
            persistentTasksStatus().getStatus()
        );
    }
    public ShutdownShardMigrationStatus migrationStatus() {
        return this.shardMigrationStatus;
    }
    public ShutdownPersistentTasksStatus persistentTasksStatus() {
        return this.persistentTasksStatus;
    }
    public ShutdownPluginsStatus pluginsStatus() {
        return this.pluginsStatus;