This is not an easy one because you need to keep a kind of "state" around for your service.
You could define a watch A that checks every minute the status of your remote service. If OK, no action is executed (or maybe a log debug message). If not OK, the watch index a document in a dedicated index.
You could define another watch B that retrieves every minute the documents in the dedicated index for the last 5 minutes, in order. Then using a script it can iterate over these documents and sets the status of the email accordingly?
Note that the dedicated index must be cleaned up at some point. Also, Watcher can record the watch history so maybe you can query this one to retrieve the latest watch execution status instead of using a dedicated index.