When QuestLogCache parses incomplete tracker data upon reload,
it leaves quest.isComplete undefined or false. This allows the
Arrow to process SpecialObjectives (like required source item drops)
which do not have Completed/Needed/Collected stats on them, bypassing
our recent arrow logic fix.
Added an explicit check for QuestieDB.IsComplete(quest.Id) == 1
at the very top of the track loop to guarantee the Arrow immediately
stops processing objectives and exclusively targets the finisher.
QuestieArrow._CollectObjective was only checking objective.Completed
to determine if it should skip an objective. In WotLK, the server often
doesn't send the completed flag until turn-in time.
This caused the arrow to still pick up the kill/interaction spawns (like
the 5/5 Goblin Prisoners) because their Completed flag hadn't been
set, overpowering the finisher spawn.
Added a fallback check: if objective.Collected >= objective.Needed,
skip the objective.