### Elasticsearch Version

Version: 8.1.3, Build: default/rpm/39afaa3c0fe7db4869a161985e240bd7182d7a07/2022-04-19T08:13:25.444693396Z, JVM: 18

### Installed Plugins

translations,licensing,globalSearch,globalSearchProviders,features,mapsEms,licenseApiGuard,usageCollection,taskManager,telemetryCollectionManager,telemetryCollectionXpack,kibanaUsageCollection,sharedUX,share,embeddable,uiActionsEnhanced,screenshotMode,screenshotting,banners,telemetry,newsfeed,fieldFormats,expressions,dataViews,charts,esUiShared,bfetch,data,savedObjects,presentationUtil,expressionShape,expressionRevealImage,expressionRepeatImage,expressionMetric,expressionImage,customIntegrations,home,searchprofiler,painlessLab,grokdebugger,management,watcher,licenseManagement,advancedSettings,spaces,security,savedObjectsTagging,reporting,lists,fileUpload,ingestPipelines,encryptedSavedObjects,dataEnhanced,cloud,snapshotRestore,eventLog,actions,alerting,triggersActionsUi,transform,stackAlerts,ruleRegistry,savedObjectsManagement,console,controls,graph,fleet,indexManagement,remoteClusters,crossClusterReplication,indexLifecycleManagement,visualizations,canvas,visTypeXy,visTypeVislib,visTypeVega,visTypeTimeseries,rollup,visTypeTimelion,visTypeTagcloud,visTypeTable,visTypeMetric,visTypeHeatmap,visTypeMarkdown,dashboard,maps,dashboardEnhanced,expressionTagcloud,expressionPie,visTypePie,expressionMetricVis,expressionHeatmap,expressionGauge,dataViewFieldEditor,lens,cases,timelines,discover,osquery,observability,discoverEnhanced,dataVisualizer,ml,uptime,securitySolution,infra,upgradeAssistant,monitoring,logstash,enterpriseSearch,apm,dataViewManagement

### Java Version

_bundled_

### OS Version

Linux kibana.q-mex.net 3.10.0-1160.59.1.el7.x86_64 #1 SMP Wed Feb 23 16:47:03 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

### Problem Description

Some parts of the internet / stackoverflow / forums, advise to disable the `cluster.routing.allocation.disk.threshold_enabled` setting. This also disables the unlocking if the cluster is in a locked state, effectively creating a perma-lock (until someone changes the setting back). 

This means indices stay locked even after disk usage dropped significantly. This is especially bothersome for indices like `.security` and `.async-search` which do not allow manual intervention.

(Not that big of a deal, having figured out now what caused my lockup. I wanted to create this GH issue for sake of documentation - I'd be OK if this were closed as `wontfix`)

### Steps to Reproduce

- Have a high disk usage to cause the lockup - ideally in a single-node deployment
- Get your disk usage back to normal levels (63% in my case)
- See that nothing happens

### Logs (if relevant)

_No response_
server/src/main/java/org/elasticsearch/cluster/InternalClusterInfoService.java
mostAvailableSpaceUsages = Map.copyOf(mostAvailableUsagesBuilder);
                }
                @Override
                public void onFailure(Exception e) {
                    if (e instanceof ClusterBlockException) {
                        logger.trace("failed to retrieve node stats", e);
                    } else {
                        logger.warn("failed to retrieve node stats", e);
                    }
                    leastAvailableSpaceUsages = Map.of();
                    mostAvailableSpaceUsages = Map.of();
                }
            }, this::onStatsProcessed));
            final IndicesStatsRequest indicesStatsRequest = new IndicesStatsRequest();
            indicesStatsRequest.clear();
            indicesStatsRequest.store(true);
            indicesStatsRequest.indicesOptions(IndicesOptions.STRICT_EXPAND_OPEN_CLOSED_HIDDEN);
            indicesStatsRequest.timeout(fetchTimeout);
            client.admin().indices().stats(indicesStatsRequest, ActionListener.runAfter(new ActionListener<>() {
                @Override
                public void onResponse(IndicesStatsResponse indicesStatsResponse) {
                    logger.trace("received indices stats response");
                    if (indicesStatsResponse.getShardFailures().length > 0) {
                        final Set<String> failedNodeIds = new HashSet<>();
                        for (final DefaultShardOperationFailedException shardFailure : indicesStatsResponse.getShardFailures()) {
                            if (shardFailure.getCause()instanceof final FailedNodeException failedNodeException) {
                                if (failedNodeIds.add(failedNodeException.nodeId())) {
                                    logger.warn(
                                        () -> format("failed to retrieve shard stats from node [%s]", failedNodeException.nodeId()),
                                        failedNodeException.getCause()