I was actually more wondering about the long-term behavior of daemons in unix or threads in general
Eles correm até que eles parem. O sistema não irá pará-los arbitrariamente, e você já sabe que o pi não pode ir dormir. Se por "não responder" você quer dizer "lento" e o sistema estiver fazendo outras coisas, pode ser porque o JRE foi trocado (mas não parece que esse é o problema).
Você pode querer olhar para o perfil da memória ao longo do tempo. Se aumentar constantemente, até o ponto em que é muito maior depois de alguns dias, quando o problema ocorre, isso é uma pista de que algo está errado. Eu acho que é quase impossível realmente "vazar" a memória com o java, mas certamente é possível construir acidentalmente massas que não estão sendo realmente usadas. Você pode estar interessado em este .
Além disso, você precisa implementar um registro mais detalhado no programa; aparentemente, conta o tempo de um jeito ou de outro. Faça-o acordar em intervalos regulares curtos, independentemente de haver algo a fazer e relatar seu estado. Isso pode misteriosamente "consertar" o problema, ou pode fornecer uma pista real. O registro robusto é crítico para monitorar processos persistentes. Toda vez que faz alguma coisa - qualquer coisa - registre-a. Toda vez que uma certa quantidade de tempo passa sem fazer nada, registre isso. Logging demais é melhor do que não é suficiente.