The list at the end — billing errors disguised as rate limits, missing credentials, a scheduler that silently stopped — is the part I'd pull out and put first. Every one of those is a failure that reports itself as something else, and the fix isn't a better model, it's a record of what actually happened per run: which provider answered, under what limit, at what time, and whether the scheduler fired at all. Once each run leaves a claim with a source and a timestamp, a scheduler that quietly died shows up as a gap in the record instead of a suspiciously calm week.