In #86101 we added a warning if bootstrapping was incorrectly configured (and in #92744 we changed it to be emitted every 12h). The logic introduced doesn't take account of `discovery.type: single-node`, so explicitly-single-node clusters will always emit this warning even though they are correctly configured.

Relates https://github.com/elastic/elasticsearch/issues/58393.
server/src/main/java/org/elasticsearch/cluster/coordination/ClusterBootstrapService.java
+ "unless existing master is discovered",
            unconfiguredBootstrapTimeout
        );
        transportService.getThreadPool().scheduleUnlessShuttingDown(unconfiguredBootstrapTimeout, Names.GENERIC, new Runnable() {
            @Override
            public void run() {
                final Set<DiscoveryNode> discoveredNodes = getDiscoveredNodes();
                logger.debug("performing best-effort cluster bootstrapping with {}", discoveredNodes);
                startBootstrap(discoveredNodes, emptyList());
            }
            @Override
            public String toString() {
                return "unconfigured-discovery delayed bootstrap";
            }
        });
    }
    private Set<DiscoveryNode> getDiscoveredNodes() {
        return Stream.concat(
            Stream.of(transportService.getLocalNode()),
            StreamSupport.stream(discoveredNodesSupplier.get().spliterator(), false)
        ).collect(Collectors.toSet());
    }
    private void startBootstrap(Set<DiscoveryNode> discoveryNodes, List<String> unsatisfiedRequirements) {
        assert discoveryNodes.stream().allMatch(DiscoveryNode::isMasterNode) : discoveryNodes;
        assert unsatisfiedRequirements.size() < discoveryNodes.size() : discoveryNodes + " smaller than " + unsatisfiedRequirements;
        if (bootstrappingPermitted.compareAndSet(true, false)) {
            doBootstrap(
                new VotingConfiguration(
                    Stream.concat(
                        discoveryNodes.stream().map(DiscoveryNode::getId),