Today in a few places we create a `new CountDown(0)`. This is kind of trappy because it will never return `true` from `#countDown()` or `#fastForward()` which risks never completing whatever action needs completing unless the caller handles the empty case specially.

We should refactor the places that do this so that they all avoid creating an empty `CountDown`, instead just handling the fact that the action is already complete:

- [ ] `TransportIndicesShardStoresAction$AsyncShardStoresInfoFetches`
- [ ] `ClearScrollController`
- [ ] `TransportBroadcastReplicationAction#doExecute`
- [ ] `Realms#usageStats`

Once we've done that, we can forbid the creation of an empty `CountDown`.
x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/authc/Realms.java
realms.add(0, factories.get(NativeRealmSettings.TYPE).create(realmConfig));
        }
        if (false == disabledBasicRealmTypes.contains(FileRealmSettings.TYPE) && false == realmTypes.contains(FileRealmSettings.TYPE)) {
            ensureRealmNameIsAvailable(realms, FileRealmSettings.DEFAULT_NAME);
            var fileRealmId = new RealmConfig.RealmIdentifier(FileRealmSettings.TYPE, FileRealmSettings.DEFAULT_NAME);
            var realmConfig = new RealmConfig(
                fileRealmId,
                ensureOrderSetting(settings, fileRealmId, Integer.MIN_VALUE),
                env,
                threadContext
            );
            realmConfigs.add(realmConfig);
            realms.add(0, factories.get(FileRealmSettings.TYPE).create(realmConfig));
        }
    }
    private void addReservedRealm(List<Realm> realms) {
        ensureRealmNameIsAvailable(realms, ReservedRealm.NAME);
        realms.add(0, reservedRealm);
    }
    /**
     * Check that the given realmName is not yet used by the given list of realms.
     */
    private void ensureRealmNameIsAvailable(List<Realm> realms, String realmName) {
        assert realms.size() == realms.stream().map(Realm::name).collect(Collectors.toUnmodifiableSet()).size()
            : "existing realm names must be unique";
        final Realm misNamedRealm = realms.stream().filter(realm -> realmName.equals(realm.name())).findFirst().orElse(null);
        if (misNamedRealm != null) {
            throw new IllegalArgumentException(
                "Found realm configured with name clashing with the ["
                    + realmName