In an empty working folder, build a test setup for recovering from provider problems, with two pretend providers and a task
list of four made-up tasks. The first provider can be told to fail with an outage, a full limit, or an invalid key; the second
always works. A runner works through the list and must tell the three failures apart: wait and retry with growing pauses for an
outage, wait the full maximum for a limit, stop and leave the task open for an own error. After a few failed attempts it falls
back on the second provider for that task only. Stay inside this folder: no real provider, no key, no network. Test it yourself
and show me the log of one run per failure kind, and the final task list of each.
