Talvez a resposta seja que seu colega de trabalho esteja correto. Talvez você tenha entendido mal Turing, ou como isso se aplica aqui?
Todas as máquinas são finitas, portanto, não existem máquinas de Turing 'reais' nem programas que nunca parem. Um programa trivial que executa um loop infinito simples pode executar 5 minutos ou 50 anos, mas em uma máquina finita ele será interrompido. Um problema não trivial de interrupção, como 'calcular pi exatamente', também será interrompido, porque, eventualmente, o cálculo excederá a capacidade de armazenar mais dígitos.
O resultado de Turing não garante nada de particularmente útil em máquinas finitas; portanto, sua busca é infrutífera. Melhor focar em quanto tempo e quanto dinheiro e deixar o infinito para os matemáticos.
Você pode pensar que um programa como { while true: print "running"; print "halted"; }
é um contra-exemplo, mas não é. Este programa tem efeitos colaterais, que podem ou não causar sua interrupção. Ignorando os efeitos colaterais, é possível elaborar uma prova formal de que este programa não será interrompido. Nesta questão, estamos preocupados apenas com programas que escapam à prova formal de não parar, onde a questão da parada é indecidível. Este não é um programa desse tipo.
Pode ajudar a distinguir Turing 'forte' de Turing 'fraco'. As máquinas Strong Turing são infinitas e, se não conseguirem, funcionarão por tempo infinito. Não podemos construí-los.
Máquinas de Turing fracas têm limites finitos de tempo e espaço, e são o único tipo que podemos construir. Estamos interessados em programas que não podem comprovadamente parar dentro desses limites. Turing nos diz que existem programas desse tipo, mas não podemos identificá-los. Se os limites forem baixos o suficiente, podemos identificá-los escrevendo o programa e executando-o em seus limites.
A essência de Turing é que não há atalhos. A única maneira de ter certeza de que um problema é viável computacionalmente é escrever o programa, executá-lo e descobrir. Com tempo e dinheiro suficientes, você pode escrever todos os programas, executá-los para sempre e ao longo do tempo e encontrar os que produzem resultados (os cabeçalhos). Os outros ainda estarão correndo. Você tem tempo e dinheiro suficientes para fazer isso?
Sério, a disputa é sobre limites. Turing e NP complete nos dizem que certas classes de problemas não podem ser resolvidas por computadores dentro de um determinado orçamento ou em um determinado cronograma, não importa quão grande esse orçamento ou quão generoso esse cronograma possa ser. Existem muitos exemplos desse tipo de problema: quebra de chaves criptográficas; otimizar as rotas para fazer entregas em centenas de endereços; caixas de embalagem em caminhões; encontrando bugs em programas grandes!
Portanto, peça um orçamento e um cronograma ao seu colega de trabalho e prometa que você pode produzir um problema que não pode ser resolvido dentro desse orçamento ou cronograma. Essa promessa será muito fácil de cumprir.