Quick thought - in the check stage are you checking each port on the proxy (only the good/bad stage) before dropping it into (and while in) the scheduler, or would that be unnecessary?
chap - didn't even think about what this was doing when I was writing that. Just realised I was off on a completely different thread using your initial diagram. (basically for something else). Now had a read of your blog post and realise.
I thought about this a few times... In the end though I didnt bother with it because It was just quicker to use SB Proxy Checker. Its a VERY good idea though! Even better if you had a proxy scraper integrated into it