Async Job Polling

Wait for a long-running job without holding a request open. Submit the work, poll until it reports done, and suspend the run between polls so nothing is held open and a restart does not lose it.