I used to run a plugin on my Kodi that would make TV-style channels based on the original airing channel, complete with EPG and everything.
However, it wouldn’t let you add lists of shows and create channels that way. I never got around to making my version, but perhaps someone else has done the work since then.
It’s long running, so you want a database so you can store your state. If you’re storing state, locking it into a state machine makes sense.
I do agree with some of the commenters that making it closer to an event source design would make more sense still.