This hopefully fixes #14661, which I believe is caused by a race in send_blocks_and_test. By setting request_block=False we only effectively check node.getbestblockhash() != blocks[-1].hash before returning and checking the debug.log. By setting request_block=True (the default) we make sure that we send the block, then sync with a ping before asserting on the debug.log.
Even if this patch doesn't fix the issue, it is good cleanup: There is no reason to not wait for the blocks to be requested, since in all these cases the header gives no indication that the block is consensus invalid. So this patch makes the test also a bit stricter and more useful.
Unrelated to this, I also include a fix that makes the tests pass on latest CentOS.