Unicast discovery: only disconnect from temporary connected nodes

In unicast discovery, we try to reuse existing discovery nodes based on the node address they have. If we find an existing node based on its address, and for some reason its not connected, don't add it to the list of nodes to disconnect from, as that (full) connection is useful down the road
 Also, fixed a rogue count down on a latch in case the ping cycle has ended (in practice, it didn't do any harm, since the latch has timed out already by definition, but still cleaner)
I think we need the `latch.countDown()`, because then success variable will be set to true and then we don't do `latch.countDown()` in the finally block?