Multiple timer event with Mail Task issues

Hi Team,
I am new to flowable. My requirement almost similar Escalation Email content for different time cycle and in addition to that we need to reassign same task to superuser/task owner through system task when 3rd SLA failed to meet by task owner. This is recursion and will continue until complete task. Please find the bpmn diagram for same.

Below are my Issues in this implementation and request for your suggestion/ solutions
By selecting the exclusive property option for Resolve Claim user task, the entire flow is executing some extent but still there are below mentioned issues requires your suggestions/solutions

The 3rd email which attached with Parrell gateway is executing 3 times for SLA fails and getting 3 emails rather one.

The Auto reassign service task attached with Parrell gateway is executing / calling and creates the Resolve Claims user task only two times and no further call getting invoked that.

There is inconsistence in the email receiving. example before receiving 1 Email notification getting 2nd email content and sometime 2nd email is not at all receiving.

I am looking for your response.

snapshot for Auto reassign service task:
try {
String taskId = (String) execution.getVariable(PRCS_CRNT_TSK);
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
if (null != task) {
assignee = task.getAssignee();
}
if (null != assignee && !assignee.isEmpty()) {
TaskActionRequest actionRequest = new TaskActionRequest();
actionRequest.setAction(TSK_ACTION_COMPLETE);
actionRequest.setAssignee(task.getAssignee());

			additionalVariables = new HashMap<>();
			additionalVariables.put("ORG_SID", "******");
			additionalVariables.put("USR_ACNT_SID", "******");
			additionalVariables.put("USR_EMAIL_ID", "******");	
			additionalVariables.put("escalateTO", "******");
			taskService.setVariables(taskId, additionalVariables);
			
			String l_sUsrName = "******";
			String l_sOrgUnitName = "******";
			
			Map<String, Object> varaiblesMap = new HashMap<>();
			varaiblesMap.put("ASSIGNEE", l_sUsrName);
			varaiblesMap.put("ORG_UNIT", l_sOrgUnitName);
			varaiblesMap.put("reason", "Auto Reassign to super Administator due to SLA breach");
			varaiblesMap.put("ACTION", "REASSIGN");
			
			String processInstanceId = task.getProcessInstanceId();
			processEngineUtil.updateProcessInstanceVariable(processInstanceId, varaiblesMap);
			taskResource.executeTaskAction(taskId, actionRequest);				
											
		}else {
			throw new FlowableForbiddenException("Task not assigned to any User.");
		}
	}Catch{
	
	}