Genesys Cloud SDK: 429 rate limit on bulk user updates

Running a script to update user skills for 500 agents. The .NET SDK throws a 429 Too Many Requests error after about 20 calls. I tried adding Thread.Sleep(1000) between requests but it still fails. What is the correct way to parse the Retry-After header or implement exponential backoff in the async loop?

{
 "code": 429,
 "message": "Too Many Requests",
 "status": "Too Many Requests",
 "retryAfter": 2
}