That long will timeout any client, the best way I can think of is using Lua to start the php process and return some info page to the client so the client doesn't timeout and kill the php process.
You will also need to use a Lua co-socket and most likely it will block a worker for that amount of time.
You could also do something else, like create a que system externally which you feed from nginx/Lua.
request -> Lua fire batch job, store job handle in shared memory, return a job handle to client -> close connection
A separate process picks up the batch and runs it, when done create a signal file.
request result -> Lua check for job signal file, compare with handle in shared memory -> return result or busy state.
---
nginx for Windows http://nginx-win.ecsds.eu/