Seguramente tenho um problema de uso de memória RAM.
As variáveis globais ocupam quase todo o espaço. Ao executar, as variáveis locais devem estar ultrapassando a capacidade da RAM do Arduino nano.
O seguinte passo vai ser provar um Arduino nano Every, a ver se é a solução.