First, Marketo is absolutely correct here, as webhooks are designed to be stateless. Plus, 202 responses do not carry any inherent "retry-after" semantics (any queue-and-retry process needs to be separately implemented by clients and servers, even outside of the webhook context).
But you don't have to worry about an infinite loop if you don't create one.
Instead, Call Webhook once more after a 5 minute Wait step (or 6 minutes to be safe). Have another Smart Campaign that triggers on Webhook is Called, constrained by response = HTTP 200. In that second SC's Flow, call Remove from Campaign on the first campaign.
Based on what I see here: https://www.fullcontact.com/blog/asynchronous-delivery-with-webhooks-and-testing-locally/ it seems that Marketo is just acting as the API Consumer in the diagram. As Sanford Whiteman mentioned you could call the service again and get the 200 response with the enriched data, but you might be charged for 2 credits, one for the 202, and one for the 200.
For a task like this you could spin up a few AWS lambdas to make the necessary GET/POST requests, and one lambda could be attached to an API gateway that handles the POST callback behavior.
Does this enrichment need to happen in real-time as leads route, or is it a batch process where you use your monthly credits at once?