### Elasticsearch Version

8.11.0

### Installed Plugins

_No response_

### Java Version

_bundled_

### OS Version

Darwin Kernel Version 22.6.0

### Problem Description

User templates affect Kibana system indices. This is contrary to most system indices https://github.com/elastic/elasticsearch/pull/87933 and causes issues where settings or mappings from the template interfere with the correct working of Kibana.

Based on the description in https://github.com/elastic/elasticsearch/pull/87933 it sounds like the behaviour is intentionally different for Kibana's system indices. Most likely because Kibana used to rely on templates for the user session index. However, it looks like there was maybe a mis-communication because in 8.4.0 Kibana changed this behaviour to no longer rely on templates https://github.com/elastic/kibana/pull/134900 so this should no longer be necessary

### Steps to Reproduce

```
# Based on a real issue a customer faced on ESS
# Create a data stream template matching system indices
curl -X PUT "elastic:changeme@localhost:9200/_index_template/my-ds-template?pretty" -H 'Content-Type: application/json' -d'
{ 
  "index_patterns": [".*"],
  "data_stream": { },
  "priority": 9000,
  "_meta": {
    "description": "Template for my time series data",
    "my-custom-meta-field": "More arbitrary metadata"
  }
}
'

# Create a user able to create Kibana system indices
curl -X PUT "elastic:changeme@localhost:9200/_security/role/grant_kibana_system_indices" -H 'Content-Type: application/json' -d'
{
  "indices": [
    {
      "names": [
        ".kibana*"
      ],
      "privileges": [
        "all"
      ],
      "allow_restricted_indices": true
    }
  ]
}
'             

curl -X POST "elastic:changeme@localhost:9200/_security/user/superduperuser" -H 'Content-Type: application/json' -d'
{
  "password" : "changeme",
  "roles" : [ "superuser", "grant_kibana_system_indices" ]
}
'

# Attempt to create a Kibana system index:
curl -X PUT "superduperuser:changeme@localhost:9200/.kibana_8.11.0_001" -H 'Content-Type: application/json' -d'
{}
'
```

> {"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"cannot create index with name [.kibana_8.11.0_001], because it matches with template [my-ds-template] that creates data streams only, use create data stream api instead"}],"type":"illegal_argument_exception","reason":"cannot create index with name [.kibana_8.11.0_001], because it matches with template [my-ds-template] that creates data streams only, use create data stream api instead"},"status":400}


### Logs (if relevant)

_No response_
modules/reindex/src/internalClusterTest/java/org/elasticsearch/migration/AbstractFeatureMigrationIntegTest.java
}
        @Override
        public String getFeatureDescription() {
            return "a plugin for testing system index migration";
        }
        @Override
        public Collection<SystemIndexDescriptor> getSystemIndexDescriptors(Settings settings) {
            return Arrays.asList(INTERNAL_MANAGED, INTERNAL_UNMANAGED, EXTERNAL_MANAGED, EXTERNAL_UNMANAGED, KIBANA_MOCK_INDEX_DESCRIPTOR);
        }
        @Override
        public Collection<AssociatedIndexDescriptor> getAssociatedIndexDescriptors() {
            return Collections.singletonList(new AssociatedIndexDescriptor(ASSOCIATED_INDEX_NAME, TestPlugin.class.getCanonicalName()));
        }
        @Override
        public void prepareForIndicesMigration(ClusterService clusterService, Client client, ActionListener<Map<String, Object>> listener) {
            listener.onResponse(preMigrationHook.get().apply(clusterService.state()));
        }
        @Override
        public void indicesMigrationComplete(
            Map<String, Object> preUpgradeMetadata,
            ClusterService clusterService,
            Client client,
            ActionListener<Boolean> listener
        ) {
            postMigrationHook.get().accept(clusterService.state(), preUpgradeMetadata);
            listener.onResponse(true);
        }
    }
}