> Not quite sure why this isn't a more common situation for open-source, it seems like the ideal situation for everyone.
Because it's hard to do. I've been trying to figure out how to do it too for a while, but first of all you gotta wrangle a bunch of developers, a large part of which don't actually want to have any actual responsibility with the project. Many of even the most core developers see it as a hobby.
Then, finding customers isn't easy. It's not just a matter of putting a "Support And Consultancy For Sale" sign on your webpage. You gotta have a nice website, and you have to go and convince people that their money is well spent. And you have to make sure you have the proper infrastructure to handle those requests.
And once you find customers, you have to figure out how to spend that money. As the root of all evil, it can lead to tensions between developers. What used to be just for fun is now a job. This may actually demotivate them. And they might now have to concentrate on tasks that pay instead of tasks that are merely fun. And they might resent how the money gets distributed.
All of these problems can be surmounted, of course, but it's not at all easy, and it involves a set of skills most free hackers don't have. We'd rather be coding than running a business.