I never understood why empty blocks is allowed... you can start immediately and get a head start over other mining pools. Granted it is just the time to load in transactions from the mempool and hash the result of appending them to the blockchain, but still... if you're in a race, why not take any advantage you can get?
I've monitored the chain for years, and empty blocks are very very common. I know there is a civil war of people that want to make the block size larger vs keep it the same... I think at this point it they would both agree that every block should at least be 90%+ full before it is accepted. That seems like a simple fix.
The attackers would then like just fill up the blocks passing a tiny amount of bitcoin between all their wallets, but at that point they might as well just use the mempool.
In the end, if you have mining dominance, you win. No point denying that. If you want to "ban" miners, or rewrite history, bitcoin is no longer decentralized.