### 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
*        index.routing.allocation.include._tier_preference: "data_cold,data_warm,data_hot"
     *    }
     *
     *  - loop through the existing legacy, composable, and component templates and remove all the custom attribute routing settings for
     *  the configured @param nodeAttrName, if any of the index.routing.allocation.require.{nodeAttrName} or index.routing.allocation
     *  .include.{nodeAttrName} settings are presents in the template (irrespective of what they are configured to, we do not inspect the
     *  values in this case).
     *  Eg. this legacy template:
     *  {
     *    "order": 0,
     *    "index_patterns": [
     *      "*"
     *    ],
     *    "settings": {
     *      "index": {
     *        "routing": {
     *          "allocation": {
     *            "require": {
     *              "data": "hot"
     *            },
     *            "include": {
     *               "data": "rack1"
     *            },
     *            "exclude": {
     *               "data": "bad_rack"
     *            }
     *          }
     *        }
     *      }
     *    },