There may be a more elegant way to do this, but off the top of my head I think these rules (not correct syntax) should work. The rules use 3 Outputs (example will use 20,21,22). The rules will assume a speech announcement every 10 minutes and email announcement after 60, change to suit your needs.
Output 20 is the 10 minute speech timer
Output 21 is the 60 minute email timer
Output 22 is the acknowledgment flag
Assume press F4 on any keypad to acknowledge
//Start the process at 11PM if GD is open
WHENEVER the time is 11PM
AND GD zone is open
THEN Turn Output 20 on for 10 minutes
THEN Turn Output 21 on for 60 minutes
THEN Turn Output 22 on
THEN Announce "GD is open"
//Check every 10 minutes to announce by voice
WHENEVER Output 20 turns off
AND Output 22 state is ON
THEN Announce "GD is open"
THEN Turn Output 20 on for 10 minutes
//Check after 60 minutes to send email
WHENEVER Output 21 turns off
AND Output 22 state is ON
THEN Send "GD is still open" email
WHENEVER F4 on any keypad is activated
THEN Turn Output 22 off
So the logic is you keep setting 10 minute time (output 20) and every time it expires and the global flag (22) is on then you make the announcement. If the 60 minute timer (21) expires and global flag is still on then send email. Whenever you press F4 (acknowledgment) then the global flag is turned off and if that flag is off the speech or email won't happen.
Now this assumes the GD is open at 11PM. It does not take into account if door is closed and then opens at 11:15 and doesn't close. It could all be tweaked to accommodate other scenarios, etc but I think these rules to the basics of what you want. It's all off the top of my head and untested but seem like it should work...