What happens if he refuses to accept that block, and another miner creates a block without that transaction, and he accepts that. Won't this create a soft fork, and it will be up to other miners to decide which fork to run with. My guess would be that most nodes and miners won't want the overhead of checking transactions, so it would need to be an automatic check in the core software. Spammer support seems to exerting an influence here, and that is a bit concerning.
I grab what you mean, but that’s not really how it works. The thing is if you refuse a block that’s valid by consensus rules, it doesn’t create a soft fork, instead, it just puts your node on its own little fork that nobody else is going to follow. The rest of the network will keep moving forward on the longest valid chain and your node will simply fall out of sync if it keeps rejecting those blocks.
That’s why filtering really only works at the mempool level. Once something makes it into a block that passes consensus checks, a node has to accept it to stay connected. Anything beyond that would require coordinated rule changes across the majority of the network and as you already hinted, most miners/nodes don’t want the hassle of checking every transaction for content.
I hope you my response is clear enough to help you get a better understanding