Pelo que percebo o trap está ligado aos sinais de interrupção do script em sim e não ao gnome-terminal que foi chamado em background.
Até onde sei o gnome-terminal, assim como lxterminal ou xfce-terminal são apenas os containers de uma shell, que pode ser por exemplo o bash. Então o que vc quer não é algo a ser inserido nos arquivos ".bashrc" e ".bash_logout"?
Ou se não for isso talvez tenha que ser essa estrutura:
cleanup && gnome-terminal && cleanup
Não sei se isso ajuda no seu caso, mas é o que pensei.