Recently I’ve had the issue of having duplicate emails on SharePoint 2013 workflows, specifically approval workflows. There are no errors within the workflow however, when I looked at the workflow status I noticed that it had looped the stages, although this wasn’t the plan of course.
I had tried many a time to insert pauses to let the workflow jobs catch up but this never worked until I then inserted a 2 minute pause right at the start of the workflow, luckily enough this stopped sending duplicates.
Note: I did have to recreate the workflow and add the pause, the pause is vital as without, the issue still happened when recreating a new workflow.