Как правильно форкнуть процесс в flask?
Для начала, в Python есть более вменяемые способы управления процессами - посмотрите модуль multiprocess.API, как можно догадаться, должен отвечать моментально. 
Догадаться не получается, на самом деле:) Очень непонятно, зачем нужна такая логика - сначала ответить клиенту 'ok', а только потом закончить выполнять операцию. Это логически неверно и сбивает с толку в 99% случаев. По-хорошему api должно принять запрос, выполнить действие (хоть меньше секунды, хоть все 90 секунд), а затем ответить клиенту с успехом или нет.
Главное здесь - грамотно настроить nginx (worker_connections и timeout'ы как минимум, возможно, в официальной документации найдется что-то более годное), чтобы в случае множества медленных запросов сервис продолжал нормально работать.
Удалось разобраться в проблеме. Может быть кому-нибудь поможет.
Дело в том, что родительский процесс ждет завершения дочернего ( код возврата ).
Я думал, что вызова os._exit() достаточно и это можно увидеть запустив strace:16059 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=16060, si_status=0, si_utime=0, si_stime=0} ---
Оказалось, что есть нюансы. 
Нюанс заключается в следующем. Для родительского процесса нужно установить обработчик сигнала. Сделать это можно использовав библиотеку signal.signal.signal(signal.SIGCHLD, signal.SIG_IGN)
Первый аргумент - int'вая константа, а второй - действия для сигнала.
После завершения дочернего процесса он уходит в состоянии зомби ( это нормально ), как было в моем случаем. После установки обработчика начинает работать механизм reaping и OS самостоятельно очищает таблицу процессов.
Кстати, на stackoverflow предложили достаточно хорошее решение.
Идея заключается, в том, чтобы сделать демона, который будет смотреть в очередь задач. При этом веб-сервер будет отвечать 202 кодом. Задачки будут разбираться по мере поступления, а статут задачи всегда можно будет узнать по другому URL.