Leer 2 entradas y enviar reset

Yo no interpreto que hable de un watchdog, pero si te comprendo si lo ves como un watchdog para el tablero.

Tengo el problema de siempre cuando leo estas cosas.
No se como responderte porque lo que pides exige algun trabajo y cuando dices estar verde, significa que no sabes hacerlo.
Mi recomendación es que busques un buen libro y aprendas lo relacionado en general con arduino.
Para resolver tu problema debes aprender a usar millis().
millis() es un cronómeto en milisegundos que arranca con el Arduino desde 0 y se incrementa en 1 con cada milisegundo.
Para usarlo tu debes tomar su valor y compararlo con el deseado.
En tu caso el deseado es una hora, o sea.. una hora expresada en milisegundos.
1 hora = 60 min = 60 x 60 seg = 60 x 60 x 1000 mseg = 3600000 milisegundos.
No te asustes por los números
Usas variables unsigned long

entonces... cuando una entrada digital que estes monitoreando cambie de valor de 0 a 1 por ejemplo será tu disparo de millis(). Capturas ese momento leyendo el valor de millis() y ahora vuelves a no hacer nada a la espera de un nuevo evento.
Si ocurre un nuevo evento comparas el tiempo y si es menor a 3600000 entonces no haces nada, pero si es mayor a este tiempo entonces envias el reset.

Luego hay que continuar con las demas condiciones.