Create a rule at the event of "Cron maintenance tasks are performed"?
you could use hook_cron_queue_info to create a task that sits in a queue and happens on a timer. This would account for the potentially long duration of the task you mention.