We were in exactly the same situation a few months back: looked at Zend Platform and ended up going for an in-house solution, too. A database to store jobs and things like their status and dependencies on other jobs, an API for programs to register jobs (and an interface for people to write the job code itself against), and cron jobs running on the servers that would regularly pick the oldest "Pending" job that had no dependencies outstanding.