In the flow steps of whatever smart campaign has triggered the first thing that you're looking for, I'd put a "wait 3 hours" and then a "send email" of the follow up email you want to send. I'd create an additional smart campaign to stop the flow for people who do have a program change. (Smart list = trigger, program status changes, flow = remove from campaign: the campaign listed above with the 3 hour wait step).
Although you could do this using just a single campaign, with an option on the send email after the 3 hour wait, sometimes the "add option" things aren't specific enough for me to feel comfortable using them to exclude people, so I do a separate triggered removal campaign.