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
*/
    public List<Realm> getUnlicensedRealms() {
        final List<Realm> activeSnapshot = activeRealms;
        if (activeSnapshot.equals(allConfiguredRealms)) {
            return Collections.emptyList();
        }
        
        return allConfiguredRealms.stream().filter(r -> activeSnapshot.contains(r) == false).toList();
    }
    public Stream<Realm> stream() {
        return StreamSupport.stream(this.spliterator(), false);
    }
    public List<Realm> getActiveRealms() {
        assert activeRealms != null : "Active realms not configured";
        return activeRealms;
    }
    public DomainConfig getDomainConfig(String domainName) {
        return domainNameToConfig.get(domainName);
    }
    
    protected List<Realm> calculateLicensedRealms(XPackLicenseState licenseStateSnapshot) {
        return allConfiguredRealms.stream().filter(r -> checkLicense(r, licenseStateSnapshot)).toList();
    }
    private static boolean checkLicense(Realm realm, XPackLicenseState licenseState) {
        final LicensedFeature.Persistent feature = getLicensedFeatureForRealm(realm.type());
        if (feature == null) {
            return true;
        }
        return feature.checkAndStartTracking(licenseState, realm.name());
    }