### Elasticsearch Version

7.17, 8.x

### Installed Plugins

_No response_

### Java Version

_bundled_

### OS Version

Darwin

### Problem Description

The migrate to data tiers API can sometimes configure an illegal value for the `_tier_preference` setting for partially mounted indices.
This can happen if two conditions are met: 
1. if the partially mounted index doesn't have a `_tier_preference` configured
2. if the migrate to data tiers API doesn't perform any migration for this index (e.g. say this partially mounted index doesn't use the `data` custom attribute name for any allocation filtering, but either uses some other node attribute name or none at all)

In this case this piece of code kicks in to configure a default tier preference https://github.com/elastic/elasticsearch/blob/main/x-pack/plugin/ilm/src/main/java/org/elasticsearch/xpack/cluster/metadata/MetadataMigrateToDataTiersRoutingService.java#L534

This is wrong, and we should configure the `MountSearchableSnapshotRequest.Storage.defaultDataTiersPreference` as the tier preference.

Relates to https://github.com/elastic/elasticsearch/issues/84758

### Steps to Reproduce

1. Mount an index - `partial-test`
2. Remove the `_tier_preference` using
```
PUT partial-test/_settings
{
  "index.routing.allocation.include._tier_preference": null
}
```
3. Call the migrate to data tiers routing API 
```
POST /_ilm/migrate_to_data_tiers
```

### Logs (if relevant)

_No response_
x-pack/plugin/ilm/src/main/java/org/elasticsearch/xpack/cluster/metadata/MetadataMigrateToDataTiersRoutingService.java
String requireRoutingSetting = INDEX_ROUTING_REQUIRE_GROUP_SETTING.getKey() + nodeAttrName;
        String includeRoutingSetting = INDEX_ROUTING_INCLUDE_GROUP_SETTING.getKey() + nodeAttrName;
        String excludeRoutingSetting = INDEX_ROUTING_EXCLUDE_GROUP_SETTING.getKey() + nodeAttrName;
        List<String> migratedLegacyTemplates = new ArrayList<>();
        for (var template : clusterState.metadata().templates().entrySet()) {
            IndexTemplateMetadata templateMetadata = template.getValue();
            if (templateMetadata.settings().keySet().contains(requireRoutingSetting)
                || templateMetadata.settings().keySet().contains(includeRoutingSetting)) {
                IndexTemplateMetadata.Builder templateMetadataBuilder = new IndexTemplateMetadata.Builder(templateMetadata);
                Settings.Builder settingsBuilder = Settings.builder().put(templateMetadata.settings());
                settingsBuilder.remove(requireRoutingSetting);
                settingsBuilder.remove(includeRoutingSetting);
                settingsBuilder.remove(excludeRoutingSetting);
                templateMetadataBuilder.settings(settingsBuilder);
                mb.put(templateMetadataBuilder);
                migratedLegacyTemplates.add(template.getKey());
            }
        }
        return migratedLegacyTemplates;
    }
    static List<String> migrateComposableTemplates(Metadata.Builder mb, ClusterState clusterState, String nodeAttrName) {
        String requireRoutingSetting = INDEX_ROUTING_REQUIRE_GROUP_SETTING.getKey() + nodeAttrName;
        String includeRoutingSetting = INDEX_ROUTING_INCLUDE_GROUP_SETTING.getKey() + nodeAttrName;
        String excludeRoutingSetting = INDEX_ROUTING_EXCLUDE_GROUP_SETTING.getKey() + nodeAttrName;
        List<String> migratedComposableTemplates = new ArrayList<>();
        for (Map.Entry<String, ComposableIndexTemplate> templateEntry : clusterState.metadata().templatesV2().entrySet()) {
            ComposableIndexTemplate composableTemplate = templateEntry.getValue();
            if (composableTemplate.template() != null && composableTemplate.template().settings() != null) {
                Settings settings = composableTemplate.template().settings();
                if (settings.keySet().contains(requireRoutingSetting) || settings.keySet().contains(includeRoutingSetting)) {