Save external URLs in the current request

This allows us to bubble up error handling to the calling request
handler and also remove the sleep from the tests.