Таймаут устанавливается не на всю передачу ответа, а только между двумя операциями чтения.
Даже если настроить таки правильно nginx, но если PHP-скрипт выдаёт хоть что-то (пробел например) каждые 5 секунд, nginx будет терпеливо ждать окончания ответа.
Тогда смотрите на `new Function` https://developer.mozilla.org/en-US/docs/Web/JavaS...