The compact blocks dynamic in the presence of a slowish block is interesting here. For instance take the first block. It was first announced to you by peer 8:
2026-03-27T13:10:26.039635Z [msghand] Saw new cmpctblock header hash=00000000d9338f3251ebb0dc01afebf34b38a2bafaf1376ef9e26e02eadb0c64 height=297387 peer=8 peeraddr=35.217.13.118:38333
But when you asked this peer about the missing block transaction:
2026-03-27T13:10:26.044783Z [msghand] [net] sending getblocktxn (34 bytes) peer=8
It was unable to reply to you for a while, presumably because it was still validating the block. Its reply came much later:
2026-03-27T13:11:38.266321Z [msghand] [net] received: blocktxn (999590 bytes) peer=8
But meanwhile your node also received the block from peer 6, asked it for the block content and it was faster to reply:
2026-03-27T13:10:34.197281Z [msghand] [net] received: cmpctblock (358 bytes) peer=6
...
2026-03-27T13:10:34.198177Z [msghand] [net] sending getblocktxn (34 bytes) peer=6
...
2026-03-27T13:10:36.108428Z [msghand] [net] received: blocktxn (999590 bytes) peer=6
Same for the second block, where it was first announced by your non-HB peer 9:
2026-03-27T13:11:38.667001Z [msghand] Saw new header hash=00000006048ed6cfedbc6249c5eb82616a4a90cb35c76127af7a40e3198736e1 height=297388 peer=9 peeraddr=49.13.117.253:38333
2026-03-27T13:11:38.667055Z [msghand] [net] Requesting block 00000006048ed6cfedbc6249c5eb82616a4a90cb35c76127af7a40e3198736e1 from peer=9
Whom you asked for transactions to reconstruct the compact block it sent you:
2026-03-27T13:11:38.676032Z [msghand] [net] received: cmpctblock (358 bytes) peer=9
...
2026-03-27T13:11:38.676914Z [msghand] [net] sending getblocktxn (34 bytes) peer=9
And it only replied to you over a minute later:
2026-03-27T13:12:41.889462Z [msghand] [net] received: blocktxn (999590 bytes) peer=9
But you had also received it from peers 6 and 8:
2026-03-27T13:11:38.668539Z [msghand] [net] received: cmpctblock (358 bytes) peer=6
...
2026-03-27T13:11:38.669192Z [msghand] [net] sending getblocktxn (34 bytes) peer=6
...
2026-03-27T13:11:38.669849Z [msghand] [net] received: cmpctblock (358 bytes) peer=8
...
2026-03-27T13:11:38.670348Z [msghand] [net] sending getblocktxn (34 bytes) peer=8
And peer 6 was once again the fastest to reply:
2026-03-27T13:11:38.737880Z [msghand] [net] received: blocktxn (999590 bytes) peer=6
...
2026-03-27T13:12:42.285702Z [msghand] [net] received: blocktxn (999590 bytes) peer=8
So i guess the takeaway from this is that you were lucky to have a peer running on a beefy machine that was able to validate the slowish blocks in a matter of seconds before serving them to you, otherwise you would have been stalled waiting for your peers to finish validating it, and then stalled again validating it yourself.