OK, eu mesmo encontrei uma solução - talvez não seja a melhor, e os comentários e conselhos são bem-vindos.
Seguindo a minha 'pequena edição', eu escrevi um script para monitorar a conexão do rfcomm e se o bluetooth estiver desconectado, mas o tty ainda estiver conectado, então mate os processos no dispositivo:
check_rfcomm
rfcomm show /dev/rfcomm0 2>/dev/null | grep "channel 3 closed" | grep "tty-attached"
if [ $? -eq 0 ]; then
kill -9 'lsof -t /dev/rfcomm0'
fi
Eu adicionei o script ao crontab:
* * * * * /usr/local/bin/check_rfcomm >>/var/log/check_rfcomm.log 2>&1
Parece funcionar, mas com testes mínimos. Não tenho certeza de quão robusto é!