Do you know of a specific example of a lightweight system for this? I certainly don't want to reinvent the wheel, but delayed_job comes pretty close to doing everything I would want to "reinvent". The trouble, of course, is that we have a LOT of perl code that performs the actual tasks, and I don't want to just exec() the scripts and divine results from exit codes.
It may be helpful to know that the scheduling of the tasks has less to do with available resources and more with the changing state of the outside world across time (we're checking status of various external resources which may sporadically, or sometimes predictably, become unavailable)