I start a loop on timer interrupt and check all status flags, then move on if nothing interesting is happening. Usually the interrupt loop just takes care of the hardware and posts another software flag to the main loop. The idea is to spend as little time in the interrupt as possible, or less. ;-)