Keep an unsigned long variable for each alarm. When the error condition occurs, check it against millis to see if enough time has passed that you can tweet again. If it has, store millis in the variable and send your tweet. Look at the blink without delay example to see how to safely use millis handling rollover.
Note that you'll need to initialize those unsigned longs appropriately (-60000UL) if you want to be able to tweet in the first hour (or whatever your limit is) of operation.