This makes it possible to select another peer for requesting a proof if
the one currently selected get disconnected.
This introduces a lock order inversion found by TSAN for which I added
an exception: during shutdown the cs_main locks is hold before calling
CConnman::StopNodes(). This lock is held (as well as cs_orphans) for
the sake of fixing a potential lock order invertion already that could
only occur during shutdown.
Depends on D9599.