batches: pause reconciling when we hit GitHub's internal content creation limit
Created by: courier-new
During an investigation of a recent customer support issue, we learned that in addition to the normal API rate limit, GitHub also enforces an internal content creation limit, which is dynamically determined and presently undocumented: https://github.com/cli/cli/issues/4801. The behavior of the limit appears to be that it only permits a fixed number of resources to be created per minute and per hour, and exceeding this limit triggers a temporary hour-long suspension during which time no additional resources of this type can be created.
Batch Changes should be smart enough to automatically respect this internal limit. The current guidance on the linked issue is "to scan for this error message [referring to the error message "was submitted too quickly"] in your programs and retry creation after a delay of some minutes or up to an hour."
At the very least, we might want to detect and wrap this error when we encounter it, and point users to the docs about it.
Ideally, if this error is encountered, we would mark all pending changesets as "Scheduled" and pause on additional reconciliation for up to an hour before trying again. This probably overrules the rollout window schedule, if it's more frequent than 1/hour for the affected period.