Если вы знаете, что он все еще работает, вы можете pstack его, чтобы увидеть, что он возвращается. Я не уверен, насколько это будет полезно, потому что вы увидите стек вызовов интерпретатора. Вы также можете попробовать strace или ltrace, как кто-то еще упомянул.
Я бы также позаботился о том, чтобы в любой среде, в которой запускается скрипт, вы установили ulimit -c unlimited, чтобы ядро генерировалось в случае, если python полностью сбой.
Еще одна вещь, которую я мог бы попробовать - выполнить эту работу родителем, который не ждет своего ребенка. Это должно привести к тому, что запись в таблице процедур останется зомби, даже если базовое задание завершено.