Those miners wouldn't even have a way to know it is a solution to a block.
Well that is the point isn't it?
You misunderstand. My point is that legit miner would NEVER find a solution for that particular unit of work. It isn't due to fraud, it is due to the mechanics of mining. So if a miner doesn't return a solution (in time) is it because he is withholding, is it because he legitimately found no solution, is it because due to queued up work he never even started working on that work until after you broadcasted the winning block (at which point he would flush all stale work)?
You don't know. There is no way to know.
Clearly this would need to be flushed out and tested and instaban is simply rhetoric. I'm not going to engineer the entire test here in a forum post, but that's the top level pseudo code.
It doesn't work even at the top level code. You are making incorrect assumptions about how much work is actually completed and returned. The error rate wouldn't be 1% it would be more like 20%+.
Some ASIC chips don't attempt every value in nonce range. If the winning solution uses a nonce of 0x18392740 and a particular ASIC is not checking that value the miner isn't going to return a solution. You could send him the same work 1,000 times and he will NEVER return a solution.
Redo your numbers with say 10% or 20%. Also how long are you willing to wait to test all miners? How much increased orphan losses are you willing to accept? Is 100% luck with 20% orphan loss a good pool?
It is also trivial to bypass. Attacker simply has more than one account and compares the work received between accounts. Work is normally never duplicated so any duplicate work is a test. Attacker returns 100% of test blocks and drops 100% of legit blocks. Even at a smaller % tested the attacker can sniff the test blocks out with ease. If you test 10% of users and attacker has hashpower spread across 30 accounts the probability that the test block won't be duplicated across his accounts is nil.