### Elasticsearch Version

7.17, 8.x

### Installed Plugins

_No response_

### Java Version

_bundled_

### OS Version

Darwin

### Problem Description

The migrate to data tiers routing API changes the allocation configuration for 
the indices that need migrating to data tiers routing. 
After such changes we should do a cluster re-route so the allocation changes
take effect immediately. 

### Steps to Reproduce

1. On a one node `data_hot,data_content,master` node create the following index
```
PUT datatiers_problem_index
{
    "settings": {
        "index.routing.allocation.include._tier_preference": "data_hot",
        "index.routing.allocation.require.data": "hot"
    }
}
```
2. Migrate to data tiers and observe the shard is not allocated afterwards
`POST _ilm/migrate_to_data_tiers`

### Logs (if relevant)

_No response_
x-pack/plugin/ilm/src/main/java/org/elasticsearch/xpack/ilm/action/TransportMigrateToDataTiersAction.java
listener.onFailure(e);
            }
            @Override
            public void clusterStateProcessed(ClusterState oldState, ClusterState newState) {
                super.clusterStateProcessed(oldState, newState);
                MigratedEntities entities = migratedEntities.get();
                listener.onResponse(
                    new MigrateToDataTiersResponse(
                        entities.removedIndexTemplateName,
                        entities.migratedPolicies,
                        entities.migratedIndices,
                        entities.migratedTemplates.migratedLegacyTemplates,
                        entities.migratedTemplates.migratedComposableTemplates,
                        entities.migratedTemplates.migratedComponentTemplates,
                        false
                    )
                );
            }
        });
    }
    @SuppressForbidden(reason = "legacy usage of unbatched task") 
    private void submitUnbatchedTask(@SuppressWarnings("SameParameterValue") String source, ClusterStateUpdateTask task) {
        clusterService.submitUnbatchedStateUpdateTask(source, task);
    }
    @Override
    protected ClusterBlockException checkBlock(MigrateToDataTiersRequest request, ClusterState state) {
        return state.blocks().globalBlockedException(ClusterBlockLevel.METADATA_WRITE);
    }
}