Or something like Ansible? Which is battle tested, provides idempotency for most things, and has a large library of tasks it knows how to do.
Scotty doesn't know...
every sunday
I've been writing my own "task runner" which seems to have some of the same features. I'd say some pros: A nice view of that has run (what has failed, etc.) - which otherwise could be drowned-out by stderr and stdout. Timing information for each "task". Can organize nested tasks. Save all in a structured log.