it would be totally doable for the project to say
1) we are GPL licensed
2) if you can't use GPL we will sell you a license for $X
3) all proceeds go to the project.
4) if you contribute, you give us the right to do this, and retain the funds that are generated.
Dual licensing really could be a silver bullet, but because nobody has done it well (for some reason people want to use MIT + commercial), nobody understands how powerful it could be.
This is the spot where I see it becoming a sticking point. What is "the project"? For it to be an independent entity, you need to incorporate, which, at the very least, costs money, and is therefore a huge barrier to taking this route for a small project. And it's almost by definition a small project if it's in a position to be making this decision. And if it's not an independent entity, then "the project" is probably just a euphemism for one person's pocketbook. Maybe with some pinky swearing layered on top. In any case, you've also got an image problem, because a lot of people are going to be skittish about a GPL/commercial model after what happened with MySQL and some of the other open source projects that fell into Oracle's hands.
You could instead set up a legal entity that pools the resources of several projects, and let it be the commercial vendor. That might even, in a parallel universe, have been a plausible funding model for the FSF. But even there it's probably tricky, because you still need to have some way of deciding what to do with the surplus. Having once served on the board of a nonprofit, I can say that that's tricky at the best of times, and it's probably only worse if you're talking some sort of open source foundation, because open source community members tend to get along like cats in a sack.
Long story short: While I never said that something like this was unworkable, I do think that, given how badly it tended to work out when people were trying to figure out how to make it work a couple decades ago, it would seem to be much harder to get right than it initially seems.
A nice (maybe impossible or impractical) idea would be to sell commercial licenses with eventual future payments.
As in the commercial license states an estimated price and a clause saying that at any time (with some months of notice) the price will be set to somewhere up to the estimated price. If the project chooses an higher price then the licensee is free to not pay. This would also allow prospective licensee to estimate future expenses and the project to estimate eventual revenue.
kevsim put Qt as a counterexample and I objected that they're different beasts because Qt was developed mostly by Trolltech. Later it became more of an open project, but the dual licensing arrangement is older than that.
At first blush that idea makes sense, but the problem there is that we've already tried that, and it failed miserably.
I think that one fundamental problem that would need addressing is how to make it not a PITA to administer, and a hassle for everyone involved: Maintainers of small projects aren't necessarily looking to embark on a proper business enterprise, contributors don't necessarily want to have to digest the implications of the license, nobody wants to figure out how royalties for contributors would work - and with people potentially getting paid directly for the software, that's going to be a much thornier issue to negotiate than it is with the "closed source derivative works" thing that you get with permissive licenses - and licensees don't necessarily want to deal with an explosion of payments to manage.
I also suspect there's a sort of prisoner's dilemma from the business perspective. If we all share some permissively licensed open source projects, we can all come out ahead and achieve a very efficient pooling of development resources. If someone wants to go dual GPL/commercial, though, it may well be cheaper for me to implement my own version of the, say, 5% of some library that I actually need, than it is for me to pay a commercial license fee for the whole thing.