Runner_wrapper: fix backoff retry context cancellation handling
What does this MR do?
Fixes retry backoff cancellation handling by returning the correct context error and replacing time.After with a stoppable timer.
Why was this MR needed?
The retry loop returned the parent context error instead of the deadline context and used time.After in a loop, which can lead to unnecessary timer allocations and delayed cancellation.
What's the best way to test this MR?
go test ./helpers/runner_wrapper/api/client
What are the relevant issue numbers?
N/A (internal correctness fix)