Miners sometimes get lucky and find an empty block in the interim period before having the full template however this is rarely the reason for empty blocks as it's such a small amount of time.
The usual cause is that some mining hardware will continue to work on old work for up to 60 seconds despite having newer work available. This is also why when comparing "Actual Blocks" with "Expected Blocks" on mempool.space you will often observe slightly lower fees in the blocks found than what's theoretically possible
I couldn't have explained it better myself. Thanks for complementing the post! ✌️
reply