Segundo a página oficial do arduino, a função delay() usa uma constante unsigned long de 32bits o que daria um valor teórico de 4,294,967,295 (2^32 - 1) ms.
Mas devemos evitar o uso da função delay nos programas, porque a mesma para a execução do programa durante a contagem dos tempos. Uma solução é o uso da função millis.