Not sure if I understand what you want to do but I think a loop would be best. Create a task that is a "wait" for X minutes then a second task that is an email. The email task should have the condition applied how you want. Have it look to see if a process is running (or not) and then have the whole thing in a loop. You cannot easily "fork" the visualcron job so you would have to have this as a second, standalone job.
More clearly create this:
Job #1.
The thing you are trying to monitor. Let's assume you have one task in there running "Process Z"
Job #2
Trigger this to run the moment you start Job #1
Task #1 = Interval Wait time you think that Job #1 needs to run successfully. Let's pretend this is 10 minutes
Task #2 = Send Email
- to this task add a condition - the condition would be that Job #1 is "Running"
Task #3 = Interval Wait equal to the "x minutes" you mentioned in your post
Add Task #2 and #3 to a loop.
Example: (assuming Job #1 takes 20 min. and "x minutes" = 3 minutes)
(total time = 0 min) - Job #1 will start then Job #2
(total time = 10 min) - you receive an email indicating that Job #1 is still running
(total time = 13 min) After 3 min Task #3 will complete and you will receive another email
(total time = 16 min) After 3 min Task #3 will complete and you will receive another email
(total time = 19 min) After 3 min Task #3 will complete and you will receive another email
(total time = 20 min) Job #1 has completed
(total time = 22 min) After 3 min Task #3 will complete, the loop brings you back to Task #2, since Job #1 is done Task #2 will not complete and job #2 will end