This PR builds on #9495 to unit test the CCheckQueue for correctness.
The cases covered in these tests are:
- Standard usage
- Failing checks are caught
- Prior blocks failing don’t interfere with future blocks
- No Memory leakage (all check destructors are called before new blocks allowed, memory is freed).
- Thread Safety