Cfengine can be made to do something like this. You can set it up as a cron replacement, running arbitrary commands at scheduled times, and you can set up "classes" so that certain actions are performed only if certain classes are enabled. Classes can be anything from "this is a Linux system" to "it's currently between 5 and 10 minutes after the hour" to "system load is above value x" to "this arbitrary shell command that I just specified returned true", so you could set up your classes to indicate your job dependencies.
I doubt that this would be as powerful as a scheduling system (dependencies would have to be set up manually by configuring classes, scheduling concurrently would requires extra scripting or configuration work), but it is free and open source.
Version 2 of Cfengine was not particularly pleasant to work with (in the words of Seth Vidal, "it's [sic] syntax kills kittens"). I haven't used Cfengine 3. Puppet has similar design goals as Cfengine and may be easier to work with.