There are a few things that could be at play here. First thing to check: is your groov Box logging that the event ended? If you open groov View and click the Bell icon in the upper right corner, that'll take you to the Event Status page, and from there, click on the Message Logs link on the left.
That will show you a log of when events started and ended, so we can at least make sure whether your groov is noticing properly when things change.
We don't currently log whether or not an email was sent successfully, but we do log errors. As a quick example, I entered a bad password in my groov's Project Settings and I get this error in the log when things don't send:
2017-02-17, 09:45:42 GMT-08:00 WARN com.opto22.groov.server.notification.EmailProcess - Failed to send message. Reason: 535-5.7.8 Username and Password not accepted. Learn more at 535 5.7.8 https://support.google.com/mail/?p=BadCredentials y13sm2677584pfi.39 - gsmtp
groov doesn't do any mail queueing: if we can't send an email immediately, we don't retry it later.
Devices going offline shouldn't really effect event signaling: if a given tag is offline when we run our event loop, we just don't update the event. So if it was active, it stays active until the device comes back online and returns a value that would make the event go inactive.