I like Jeremy's answer.
What is the overall structure of your program? Do you have one big loop that keeps checking on the tank level? Does it do anything else?
If you take the simplest approach that you don't want to do anything else while you're delaying, all you need is a call to wait mS with the input set to 10 minutes * 60 sec/min * 1000 ms/sec. The wait mS will be in a case: if you detect an alarm, wait, then check the alarm again. In the real world, you probably want to do other things in those 10 minutes, so don't wait for the delay: check the time and see if ten minutes have passed from the initial alarm.
Don't use a separate loop just to do the delay. The delay (or the check for time difference) should be in the main loop where you're checking for alarms. You don't want to "exit the loop to check on the current alarm condition and then re-enter the loop with the new alarm value". Shift registers can keep track of whether an initial alarm was detected and what time the alarm was detected. Initialize both shift registers at the start of the program: Initialize Alarm Time to the current time; initialize Alarm Detected to False. When an alarm is detected, set Alarm Detected to True and use a case to get the current time and send that to the Alarm Time shift register.
Every time through the main loop, if Alarm Detected (shift register) is True, compare the current time to the Alarm Time. If the difference is greater than 10 minutes, check the current alarm condition (by reading your instrument, not the shift register). If the alarm still exists, send your emails and set the Alarm Time to the current time. If the alarm doesn't exist, set Alarm Detected False. Don't set Alarm Detected every time through the loop: set it (the shift register) if it's currently False and you detect an alarm condition or if you're at the end of your 10 minute delay.
You can also limit it to sending only one set of emails by adding another shift register: Email Sent (initialized to False). When you send your first email, set Email Sent True. Leave Email Sent True until the current alarm goes False. Continue to check your alarms and time the delay as before, but at the end of the next 10 minutes, don't send emails if Email Sent is True. This could prevent filling up some email inboxes if the tank goes dry overnight.