I think your criteria sound very fair. I would be curious to know how many generalists - which is what you seem to be describing - are able to produce the kind of 1000x returns that PG was describing though. Perhaps your definition of a great programmer is simply more reasonable and accessible?
I believe 1000x is likely a combination of luck and a bunch of pre-conditions. Something like this:
1. you got a 10x-person or a bunch of 2x-5x ppl.
2. your organisation doesn't drag down this constellation; but actually supports it.
3. the right problem arrives and the right tools are close to be at the needed level; but before it's obvious to anybody but a few.
A note regarding the "right" problem. I believe there are a lot of problems that a "10"x won't achieve his/her true potential "10"x speed.
I think the "right" problem is more like a problem that matches the skills of the tea very well. The match might not be that obvious.