I seem to be thinking very childish and elementary on this, but couldn't you stop ASICs by making the algo REQUIRE a GPU or CPU? Have some sort of hardware detection process, and if you don't run a certified AMD/NVIDIA GPU or Intel/AMD CPU then it won't give you work/shares.
I'm not sure if that is really possible in the realm of mining, just something I thought of the other night.