For example, maybe the block header is unchanged for an empty block even as new blocks are mined. A miner could simply try and solve the same block indefinitely until the solution is found and they they can stick the empty block into the chain and receive the reward....
No, this is not going to work.
You need the block header hash for the latest mined block to include it in the block you are working on or it will be invalid.
Each time a new block is found and broadcasted to the network, you have to update your block and start from scratch.