Allow housekeeper to track last successful run of task

This adds a new column to the database for tracking the last successful
run of a task, in relation to its last attempted run, for the purpose of
allowing a failed task to rerun on a shorter interval. This also updates
the hardware profiler to retry daily after a failure, rather than
waiting 30 days for another attempt.