I don't know if continuing to give you fixes and alternative implementations is to be considered as harassment at this point, stop me if you're not interested into those.
There is a very biiig problem in your statements: if your vision is Woohoo, this scheduler will *automatically handle locks*—so I don't need to worry about stray background processes running in parallel automatically, and it will *automatically start/stop the processes* with the web2py server with -K, which makes it much easier to deploy the code! then the scheduler is the right tool for you. it's your app that doesn't handle locks, because of your initialization code put into models. At least 2 of your problems (initialization and 40,000 scheduler_run records) could be fixed by a "recurring maintenance" task that will do check_daemon() without advisory locks and prune the scheduler_run table. --