Split cs_main lock when sending getdata between inv types
Split cs_main lock when sending getdata between inv types

Summary:
It is necessary to release the lock for dealing with proof getdata
requests. The state does not need to be accessed in the second lock
block, which should give confidence that this will not cause any issue.

Depends on D9592.

Test Plan:
With clang and debug:
  ninja all check-all
Run the tsan build.

Reviewers: #bitcoin_abc, deadalnix

Reviewed By: #bitcoin_abc, deadalnix

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

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