Ah, mas o processo sshd é terminado. Está apenas saindo além do processo python.
Seu problema é causado pelo fato de que python não responde ao sinal HUP por padrão. Eu escrevi:
test.sh
#!/bin/sh
sh -c ./test.py </dev/null
test.py
#!/usr/bin/python
import time
time.sleep(20)
Em seguida, executei ./test.sh &
e enviei um sinal HUP para o processo test.sh. O processo test.sh terminou, mas o processo test.py permaneceu.
Seu programa python pode responder ao sinal HUP, mas você deve programá-lo para fazer isso. Confira o módulo signal
.