Não há respostas definidas aqui, mas algumas idéias aleatórias que podem ou não ajudar:
A frase "Use" logout "para sair." soa muito como o tcsh tem um caractere EOF (^ D) e não gostou dele, pedindo para você digitar 'logout'. Então, de onde todos esses (hipotéticos) EOFs vieram?
Você, como a pessoa que tem um problema com isso no Cygwin, usa o shell via um emulador de terminal X de algum tipo (xterm, rxvt, o que for)? Eu estou querendo saber se o que está acontecendo é o emulador de terminal fecha, fechando assim o ptys que o processo de shell está se conectando, o que faz com que o shell leia uma série 'infinita' de caracteres EOF, no ponto em que gira no infinito. Talvez haja algum tipo de corrida aqui, onde o termo janela fecha a loja antes de realmente notificar o shell que a sessão está completa?
Uma coisa para tentar seria descobrir a) se tcsh na sua configuração realmente aceitar (ou rejeitar) EOF para sair, e b) se rejeitar, descobrir a alternância para permitir isso.
Eu sei que isso é especulativo, na melhor das hipóteses, eu não uso tcsh e meu conhecimento de X internals e tty emulation é (felizmente pela minha sanidade) bastante mínima. Mas um cenário como esse parece plausível, de qualquer forma.