Most nodes will connect to far fewer than 125 other nodes, and you don’t know how well connected the nodes you are connected to are.
Having a connection to/from more nodes will give you a far higher chance of the block propagated to you with the least hops. Granted this doesn't mean you'll have a direct connection but it does lower your margin of error.
Nodes by default try to connect to a diverse set of nodes, so your two nodes being geographically far from each other doesn’t necessarily mean anything.
You're right. I was thinking of something else.
The verification time may be less than the 4 seconds I quoted. This can be tested by running a node that connects to a single note, yours, and to track the time difference between found block times each node is reporting.
Validation time depends on the hardware:
https://bitcointalksearch.org/topic/m.56181206.
Since the block doesn't necessarily have to be validated fully before being relayed, it becomes more or less a non-factor.
Once a pool validates a block, it will need to update its UTXO set, and it’s database for valid transactions waiting for confirmation. There will be some time between when a block is validated and when a pool will start including transactions in its proposed block if it is SPV mining.
The time that it takes for validation is quite fast actually. This topic has been discussed numerous times but the most noteworthy one is this:
https://bitcointalksearch.org/topic/why-not-to-mine-on-pools-mining-empty-blocks-and-why-do-pools-mine-empty-blocks-5251592.
Here's the thing about being well-connected. Merely having connections to a lot of nodes will cause you to get a much larger number of timestamps, and there's going to be even more of them that are different from each other because the more nodes you connect to, the higher the chance they are going to receive a block propagated by yet another miner.
We're interested in being the fastest to find out when the block gets propagated. Having multiple nodes sending the block to us won't matter because we're only concerned about when we first see the block and thus getting a more accurate timestamp. Getting another block at the same height doesn't really matter.
For profiling, you'll want to find which nodes belong to the big mining pools (the top 10 are sufficient), maybe by looking at their DNS seeds, and just connect to those. Then you will know that the most accurate timestamp is the lowest one, from the node that submitted the block to you first.
Just run a zombie on their pool. You'll definitely be the first to see if a block gets mined. I wouldn't do this though, you're just wasting their resources and would probably get kicked. But that was how they were SPV mining in the past.