OMG, finalmente após 6 semanas, encontrei o problema.
Depurei-o usando trap
.
executando trap
fornece uma lista de sinais que estão sendo capturados
trap -- '' SIGINT
trap -- '' SIGQUIT
trap -- '' SIGTSTP
trap -- '' SIGTTIN
trap -- '' SIGTTOU
Eu encontrei o SIGINT nessa lista, então algo estava fazendo com que o SIGINT fosse adicionado à lista de armadilhas de coisas que estão sendo ignoradas essencialmente. Depois de algumas escavações, algumas bibliotecas ruby carregadas com rvm no meu perfil bash estão mexendo com trapping.
De qualquer forma, para corrigir, eu adicionei: trap - INT
até o final do meu perfil bash, depois que a biblioteca do ruby é preenchida e tudo fica bem no capô.
Yay!