Optimize path following further following Daniel's leads:
- support full batching, serial path no longer needed even if some NPCs can swim or open doors, move requests are queued for next batch
- better use of unity's TransformAccessArray to avoid native overhead (don't set to null, do not re-build every batch instead persistent w stable identities)
- iterate forward instead of backward (ListHashSet is slower backward, + has RemoveUnordered so iterating backward to delete is not really needed)
- skip IsUnityNull checks that's no longer needed