I think that exact position matching is not good, you need to use some epsilon for position differences.
for example EuclideanDistance(targetPos, currPos) < epsilon
Also I think that need to make sure that the unit is not still moving