[avalanche] Fix a reversed lock order in ReattemptInitialBroadcast
[avalanche] Fix a reversed lock order in ReattemptInitialBroadcast

Summary:
The expected lock order is cs_vNodes => cs_peerManager. Unfortunately the ReattemptInitialBroadcast method locks the opposite way, and causes a potential deadlock that has been uncovered by the getavaaddr functional test that mocks the scheduler time (for the statistics to be updated) and increase the chance of the reverse lock condition to occur.

Ref T1696.

Test Plan:
  ninja all check-all

With debug:
  for i in {1..1000}; do ./test/functional/test_runner.py abc_p2p_getavaaddr || break; done

Reviewers: #bitcoin_abc, tyler-smith

Reviewed By: #bitcoin_abc, tyler-smith

Subscribers: Mengerian, tyler-smith

Maniphest Tasks: T1696

Differential Revision: https://reviews.bitcoinabc.org/D11021

Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc