As reported in #5529, units can be stuck in gather states when the target ought to be collectable from, but it's actually unreachable.
There is a 'slow' infinite loop: APPROACHING ends up failing, goes in GATHERING, which notices we're not in range and asks for APPROACHING (since the target ought to be collectible, it won't fail and find a new target).
To fix this, introduce a FINDINGNEWTARGET state like was done for combat or healing. When approaching fails, go directly to this state, which will now find a new (_different_) target to collect from, which will hopefully improve behaviour (as it can't be fixed entirely without a perfect reachability check, which we just don't have).
Use this also when the target is knowably unreachable / uncollectible.
However, this again broke hunting an animal that died in FoW, since the target was no longer visible, MoveTo failed and the unit would switch to a new one right away. So in APPROACHING, unless the target's last known position is visible, go there first if it seems we can't reach the target.
BUT, with that fix, when said animal was exhausted, we would return to the dropside, then try going to its last known position (since a dead target is evaporated, and we'd hit that code path). So when filled and exhausted, mark the target as invalid to avoid that.
I also discovered that there is a (limited) FoW information leak in Gathering timer, too, as we'll immediately know of a dead target, even if it died in FoW. Can't find an easy fix for that right now though :/