Sorry, I can't add comment yet.

I found the suggestions from this blog reasonable: [REST and long-running jobs][1].

To summarize: 

 1. Return code "202 Accepted" with the "Location" header set to a URI for client to check the status, e.g. "/queue/12345".
 2. Until the processing finishes, server respond to status query with "202 OK" and some response data showing job status.
 3. When the process finishes, server respond to status query with "303 See Other" and "Location" contains URI to the final result.

 [1]: https://farazdagi.com/2014/rest-and-long-running-jobs/