There's a few funny bits with Setting destination.
Calculation of the Path isn't done immediately, it can often take a few frames.
I can see that pathPending is false, but I don't think that necessarily means you have the new destination/path ready.
The docs from pathPending say:
Is a path in the process of being computed but not yet ready? (Read
Only)
So maybe if the process of computing the path hasn't even begun yet, it still returns false. And you're still looking at the previous destination?
Try waiting for hasPath to return true instead, and see if it helps.
You could also try just yielding for a few seconds but that's not an ideal way of doing it.