IMHO the reality is more complicated than what's described here.
Open source is sustainable (in the sense that people will continue to do it), even without the maintainers getting paid, for better or worse. This is evidenced by the history and the majority of open source projects now.
The bait-and-switch problem, which gets the maintainers paid, hurts the ecosystem in the long run, which relies heavily on the good faith.
Many open source projects are not developed by unpaid volunteers. The Linux kernel, for example, is primarily developed by professionals on paid time. I'm not convinced the Linux kernel development would continue without business contribution. I'm not convinced all open source projects could just continue without any payment.
I think if you look at your average "package" from GitHub, that is published to npm, nuget, or the associated language rep, by and large they're not making any money.
Sure big projects are making money and have paid development teams, but that's not true at the individual library level in many cases.