You must wait for several conditions to be met.
End of shared timer (_TimeOver);
The end of the current timer (_CurrentTimer);
The end of the audio playback (if at the time of the termination of the above events 1 and 2 it is played) (_AudioInstructionEnd).
C event 1 can be caught through the deferred object. But with events 2 and 3 problems arise - each time the button is pressed, their status is updated. The logic for these two events, as I understand it, is unlikely to be different.
It should turn out that type:
$.when(_TimeOver, _CurrentTimer, _AudioInstructionEnd).then(Finish); //когда выполнены все условия запустить функцию финиш