I think what you want is a new cron feature to use criteria other than just time to decide when to run something. i.e., so you can say "every day, when idle or every week even if not idle".