}
             }
 
-            if (_questController.IsRunning && _questController.NextQuest == null)
+            if ((_questController.IsRunning || _questController.WasLastTaskUpdateWithin(TimeSpan.FromSeconds(5)))
+                && _questController.NextQuest == null)
             {
                 // make sure to always close the leve dialogue
                 if (_questData.GetAllByIssuerDataId(target.DataId).Any(x => x.QuestId is LeveId))
 
     /// </summary>
     private DateTime _safeAnimationEnd = DateTime.MinValue;
 
+    /// <summary>
+    ///
+    /// </summary>
+    private DateTime _lastTaskUpdate = DateTime.Now;
+
     public QuestController(
         IClientState clientState,
         GameFunctions gameFunctions,
                 ExecuteNextStep(_automationType);
             else
                 _logger.LogInformation("Couldn't execute next step during Stop() call");
+
+            _lastTaskUpdate = DateTime.Now;
         }
         else if (_automationType != EAutomationType.Manual)
         {
             _automationType = EAutomationType.Manual;
             _nextQuest = null;
             _gatheringQuest = null;
+            _lastTaskUpdate = DateTime.Now;
         }
     }
 
         return false;
     }
 
+    public bool WasLastTaskUpdateWithin(TimeSpan timeSpan)
+    {
+        _logger.LogInformation("Last update: {Update}", _lastTaskUpdate);
+        return IsRunning || DateTime.Now <= _lastTaskUpdate.Add(timeSpan);
+    }
+
     public sealed record StepProgress(
         DateTime StartedAt,
         int PointMenuCounter = 0);