Thanks for the perspective. Sustainable, open, software development feels like a problem that's still not solved. How do cloud offerings, consulting, extra features ("open core") and donations compare in terms of keeping development move forward? Have there been studies around that?
One model that seems to be workin is when companies have shared infrastructure and they collaborate on it (e.g. Linux).
Another one is when they use it as a standardization layer (e.g. Kubernetes and also note the much-different-nobody-remembers-about openstak)
Then you have open-core where you have a single entity (and the drama that comes with AWS picking it up) like ElasticSearch, Kafka, etc.
The other open-source + consulting (the RedHat model) has varied results because whoever consults gets incentivised to work against community in order to make money and the consultants will be in conflict too (Cloudera/Hortonworks, Mesosphere).
Not an exhaustive list - and not an expert.
It's likely worth mapping these "patterns". For any research I'd start from incentives with a game-theory causal approach.