This is very simple, and a 16F628 would be just fine. Interrupts would be total overkill... afterall, if you're waiting up to 60 seconds before you trip an alarm, why have 'instantaneous' notification of an alarm scenario?

If you set up a program loop that polls each port, and the total loop time is say 100mS, you simply increment a variable (one variable for each port pin being monitored) if that monitored pin is not what you expect it to be. When the variable exceeds the EEPROM setting for that pin, you trip your alarm. Worst case is your program gets to know of an alarm situation within 100mS of it happening - no big deal.