Assume there there 100 unconfirmed transactions currently in the MemPool. And the size of a block is such that it's roughly made up of 10 transactions.
Now when a miner completes the Proof of Work & successfully adds his block to the blockchain, any other miner who has even one of those 10 transactions in the current block he is trying to mine is going to be unsuccessful.
So my questions are
While the miners are trying to mine a block of transactions, do they also continuously keep checking (in parallel) where there is a new confirmed block in the system which includes even one of the transactions which is there in their ongoing mining block - so that they can abort their mining instead of only aborting it after they finish their work?
With everyone picking transactions to mine from the MemPool, isn't there a very, very high chance that before you finish completing your PoW, there will atleast be one new block which includes at least one of your 10 transactions?
Is there a way for a miner to check & pick only those transactions which aren't already picked by someone else for mining?