An hour a day or even 2-3 hours a day is not going to cut it when working on something like Cyanogenmod even if someone is maintaining only a couple of devices.
I wasn't suggesting someone do it alone either. That said... With Exodus Viewer, we had to regularly merge upstream which would have significant changes all across the board. A merge would take me two weeks typically and it wasn't because I was slow, but because this a project that reaches around 100MB in source code alone for the main project (and that's ignoring project specific changes to external libraries it depends). When you're having to keep up to date with a company that hires 500+ people, it's pretty hard and that isn't even including contractors they bring on. So, I very much imagine maintaining roms isn't really that easy either considering the projects they merge between.
We just worked following a kanban and a few scrum practices that worked for our team to get work done. Your road may vary.
It is a time consuming (and pretty expensive) endeavor that will very quickly turn into a full time job.
When it came to merging, we were able to distribute work between people on the team that were better at different bits. Such as, I merged in networking changes, backend bits, our rendering expert would do merges relating to graphics engine etc.
In short, you need more contributors under the model I was talking about. But, the first thing you need to do to make any project like this work is to accept the reality and then to bend reality to your will by putting effort into making it work.
Add to that the fact that there aren't that many people who are doing it
That's really a common issue really anywhere.
people are more interested in creating their own ROMs as opposed to working on something like Cyanogen or Paranoid or Omni etc unless there is some incentive involved
I think that's healthy, it allows exploring other things honestly.
So if working on something like CyanogenMod with a full time job is not really viable, what other options are available to developers?
If general users think it's important enough, you could probably get a patreon to fund developing it full time. But my experience in such things shows me a lot of users are willing to use a product, but not even1% of them are interested in contributing towards it.
Most people do not want to donate money
I've been down this road. Mac users complaining I don't have a mac client, but then upset when I ask for money to buy the Mac needed to develop, test and compile on and that's just asking for money irregularly to meet certain vocal user interests.
a lot of people seem to think they're entitled to support by the devs so there are a lot of pretty rude comments if a device hasn't received an update
That kind of community response is part of the reason why I don't want to take on projects like that anymore.
How do developers manage the development and testing of an OS for hundreds of devices and marketing to offset bad publicity without a stable revenue stream?
With Exodus Viewer, we had automation running through our continious integration environment using (and thanks to following test driven development, our tests were pretty wholesome) that would spin up and do automated testing for each significant commit on a variety of virtual machine that had every variation of operating system and supported configuration we were looking at. This took away from needing many testers, the few testers we had used exploratory testing methodology to better use their time. I was running the automated testing from two servers in my apartment.
If I'm going to apply this to a mobile ROM project... In one of my previous work place projects, I built automated testing solutions using eggplant for applications we were working on that went across a variety of actual real devices we had access to which again was executed in a very similar style to above too. I'm pretty sure there are significantly better testing platforms available now and I don't really see the major blocker in doing that currently.
We learned very quickly that there were companies really friendly to opensource projects and willing to provide us resources for free. Atlassian gave us so many cloud services for free, we had free virtual machines thanks to opensource developer programs that gave us access to Azure, Amazon etc. and we made use of a lot of those resources too. However, some things did require money and, I just spent out of my own pocket from my regular day job to pay for it.
I don't think it's anywhere close to impossible, but, it's certanly in my opinion, easier when you have a company funding you.