This change amends it so
Topic timings are treated as background requests and subject to more aggressive rate limits.
If we notice an error when we ship timings we back off exponentially
The commit allows 405, 429, 500, 501, 502, 503 and 504 errors to be retried.
500+ errors usually happen when self hosters are rebuilding or some other weird condition.
405 happens when site is in readonly. 429 happens when user is rate limited.
The retry cadence is hardcoded in AJAX_FAILURE_DELAYS, longest delay is 40 seconds, we may consider enlarging it.
After the last delay passes we give up and do not write timings to the server.