When you account for pooled mining, ASICS become completely irrelevant - it doesn't really matter whether there are 4000 corporate-owned ASIC farms or 4 000 000 individual GPU miners, because in both of those cases the equipment will be connected to 4-10 "megapools" which will be effectively in control of the network
I think distributed verification is key with a "falseblock" message that be broadcast which proves a block is invalid. The main difficulty is that it you can't prove data is missing from a distributed hash table.
If someone proves a key is valid then they could broadcast a missing value warning. It isn't clear how to prevent it being spammed though.