From the debug.log below, 12 seconds was saved by slightly changing the code to allow the first cmpctblock received to be used instead of the cmpctblock requested from the first node that announced the block (via headers).
I realise perhaps most miners will be using the backbone and so perhaps a 12 second delay between nodes might be uncommon - it could be useful to see what are typical delays in situations where the backbone is used.
2021-04-29T08:02:12.411 recv new best header 0000000000000000000acc7acbceda74c626835d58c2e31c1fe58b2ca7fa1645 (681070) age=19s peer=51 2021-04-29T08:02:12.412 Requesting cmpctblock 0000000000000000000acc7acbceda74c626835d58c2e31c1fe58b2ca7fa1645 (681070) age=19s peer=51 2021-04-29T08:02:12.414 recv best cmpctblock 0000000000000000000acc7acbceda74c626835d58c2e31c1fe58b2ca7fa1645 (681070) age=19s size=6587 peer=62 2021-04-29T08:02:12.414 Rather than wait for peer=51 we’ll use this one peer=62 2021-04-29T08:02:12.437 Calling ProcessMessage(BLOCKTXN) peer=62 2021-04-29T08:02:12.437 recv blocktxn 0000000000000000000acc7acbceda74c626835d58c2e31c1fe58b2ca7fa1645 (681070) age=19s indexes=0 size=33 peer=62 2021-04-29T08:02:12.463 made block 0000000000000000000acc7acbceda74c626835d58c2e31c1fe58b2ca7fa1645 with 1 txn prefilled, 1022 txn from mempool (incl at least 0 from extra pool) and 0 txn requested 2021-04-29T08:02:12.880 UpdateTip: new best=0000000000000000000acc7acbceda74c626835d58c2e31c1fe58b2ca7fa1645 height=681070 version=0x3fffe000 log2_work=92.841074 tx=637848335 date=‘2021-04-29T08:01:50Z’ progress=1.000000 cache=91.7MiB(692788txo) 2021-04-29T08:02:24.280 recv tip cmpctblock 0000000000000000000acc7acbceda74c626835d58c2e31c1fe58b2ca7fa1645 (681070) age=31s size=6587 peer=51