How does GNU software development sustain economically?
I would like to start by saying that I'm not a programmer and I have never contributed to any open source project. However, I have been interested in open source for a long time and I believe that I understand the general concepts of open source and how it works. 

To start of, I would like to say that open source does not mean that you cannot make money on the software. It just means that the code has to be publicly available. Companies like Red Hat and Canonical make money not by selling the software, but by selling their expertise. If i wan't my company to run a Linux server, I can get the software for free. But I need somebody to install it, set it up and give support. This is where specialist from e.g. Red Hat comes in and makes money. For the company it makes sense, because hiring their own specialist would probably be much more expensive. This also gives these companies an incentive to contribute the the code. They want their product to be good so people will use it and by their services. 

But lets talk about your points about scalability. 


The cool thing about open source is that you do not have to develop everything from scratch. An operating system like Ubuntu has not been build by a single person. Instead a lot of people has contributed to different parts of the system (actually I think it would be hard to find one person with all the skills to make and effective operating system). For example, the Ubuntu people does not develop the Linux kernel. They just use one developed by others. So what was without open source probably impossible, is now possible,because you can build on other peoples work. 
Reading and understanding others code it not more time consuming than writing your own. At least not in many cases. Beyond that, you do not have to understand all the code you use. If I want to write a program for Linux, I do not have to understand how all the parts in that program works in detail. I just have to know what they do. I can then take these parts and put them together with other parts to create my program. Or I can take an existing program and modify it for my needs.
tools like git and github makes it incredibly easy to collaborate. You just get the code and make modifications. You then submit them to the person in charge of the project. If it is good, it will be accepted.  
people go in and out of projects all the time. But if the project is popular, enough will be working on it. 


Here are some reasons why open source works. 


I think the main reason that open source software has become so good is that the  large number of people working on the a project, insures a level of expertise that i hard to archive in a small team of developers. While it might seem weird, this single fact, seems to outweigh all the negative problems that can arise in open source. 
In commercial programming, the project dies with the firm. Lets say you  by some software from a company that then closes. Then your screwed, as you will not receive updates and bug fixes, and you will need to by new software to keep up. With open source you can just find another company to support you software or develop it yourself. 


If you are still interested, I suggest you read 
The Cathedral and the Bazaar