So in my understanding, miners bundle a list of transactions into a block and begin working on it until they can generate a valid proof of work. There are various reasons to group fewer or more transactions together into a block, but it's ultimately up to the miner.
I'm assuming that different miners may group the same transaction into different blocks and begin working on them. One miner might group transaction A into a block of 100 transactions and start working while another miner might group transaction A into a different block of 250 transactions and also start working.
When one miner finds a valid proof of work and broadcasts the new block, do all the other miners who included even a single transaction from the valid block in their own block have to drop what they're doing and start over?
Is there some system in place to ensure that most miners are working on blocks with the exact same set of transactions except for the miner's reward transaction?