### Elasticsearch Version

7.13.3

### Installed Plugins

_No response_

### Java Version

_bundled_

### OS Version

ubuntu

### Problem Description

When doing a shrink, a copy of each shard is first reallocated to the one node. Then a shrink is initiated, which generates new shards. In case the chosen node is above the low watermark now, the shrunk index cannot be allocated to the node. Currently, this can result in an unnecessary scale up when using autoscaling.

This relates to the work in #76206 in that fixing that one would reduce the risk of this occurring. We also have thoughts around retries in ILM to fix a stuck shrink. However, we would still need to ensure autoscaling would not scale up unnecessarily in this case (but still scale up if that is theonly  way to ensure the shrink succeeds).

### Steps to Reproduce

NA

### Logs (if relevant)

_No response_
x-pack/plugin/autoscaling/src/main/java/org/elasticsearch/xpack/autoscaling/storage/ReactiveStorageDeciderService.java
return isAssignedToTier(shard, allocation) == false;
            }
            return result;
        }
        private boolean allocatedToTier(ShardRouting s, RoutingAllocation allocation) {
            return nodeTierPredicate.test(allocation.routingNodes().node(s.currentNodeId()).node());
        }
        /**
         * Check that disk decider is only decider for a node preventing allocation of the shard.
         * @return true if and only if a node exists in the tier where only disk decider prevents allocation
         */
        private boolean cannotAllocateDueToStorage(ShardRouting shard, RoutingAllocation allocation) {
            if (nodeIds.isEmpty() && needsThisTier(shard, allocation)) {
                return true;
            }
            assert allocation.debugDecision() == false;
            
            allocation.debugDecision(true);
            try {
                return nodesInTier(allocation.routingNodes()).map(node -> allocationDeciders.canAllocate(shard, node, allocation))
                    .anyMatch(ReactiveStorageDeciderService::isDiskOnlyNoDecision);
            } finally {
                allocation.debugDecision(false);
            }
        }
        /**
         * Check that the disk decider is only decider that says NO to let shard remain on current node.
         * @return true if and only if disk decider is only decider that says NO to canRemain.
         */