Monolith is not a best practice.
With most web applications you'll end up with a web part and at some point some crob jobs. In this case they also have a service that processes a queue.
They should in be in the same repo, that's a Monorepo.
A web app with some cronjobs is best deployed as separate executables (ideally docker containers). In this case they had everything in one exe, including threads to run the queue etc.
So it looks like there solution was more complicated by aiming to be a Monolith.