That being said, I'd like to understand how you're going to solve the problem of receiving payment for software?You don't receive payment for the software. It's that simple. It becomes a commodity.
How do you make money as a software company? Two ways. 1) Dual license GPL and sell a proprietary-friendly license. The GPL gets you the community, the proprietary-friendly license gets you the money. 2) Develop new features under contract. There are many ways to structure this, use your imagination. For example, customer wants a new database feature in MySQL. MySQL AB says "place a bid on it and we'll tell you if it's do-able or not". Customer says "$xx,xxx" and MySQL AB says yes or no based on that number and their development resources.
No, you don't maintain control over when and where your software gets distributed. That's the tradeoff you make to receive community effort and goodwill in return, towards building a better product and giving customers what they want.