Hello @ClaraBalaguer,
You can achieve the same results with different approaches, one that came to my mind immediately is to set up your workflow in following way:

Where following use cases may happen:
- the email gets rejected and the stop activity will also stop all tasks in progress. So no scheduler is fired.

- the email is nor approved either declined and will be triggered by scheduler. Approval task will be stopped by the End activity with option stop all tasks in progress enabled
- when the email gets approved the email runs immediately. In case of approved and scheduler trigger is fired one after another, only one will pass to the delivery so you do not send same email twice. That will be set up in Advanced JavaScript activity
Advanced JS activity will have logic to trigger only once by setting flag that will be saved under instance.vars.triggered. Instance vars because they are visible to entire workflow once set. I would set it in start activity:

In the advanced JS add the following, to the tab "next calls" (two can happen)
if (instance.vars.triggered == true){
task.postEvent(task.transitionByName("alreadyTriggered"));
}else{
instance.vars.triggered = true;
task.postEvent(task.transitionByName("ok"));
}
return 0Where basically with simple condition we set this flag to true when we first run over this JS. Next time the AJS will trigger transition called alreadyTriggered and will finish the workflow. (not the end with stop all tasks.. as the delivery might be processing)

Also do not forget to add new transition called alreadyTriggered
Also make sure only decline and delivery done goes to Stop - stop all tasks in progress
Marcel