This little essay falls clearly into the 'clutching at straws'' category of jfheath replies.
I haven't got a clue - partly because I haven't come across this scenario before.
But something is happening to cause this behaviour so there is a possibility that the following two items may be relevant.
I have noticed that closest entry point doesn't work if you are sitting on the route itself, and that in some circumstances, which I haven't yet determined, it will route you to the start of the route. That makes sense. It has to calculate a distance to the closest point. If that distance is zero it cannot calculate a direction. In maths and computing, you often have to 'test for zero' and follow different rules when the result of a calculation is zero or is close to zero. In this case, the programmers may have decided that you are on the route and therefore need to follow normal route rules - ie head for the next route point in the list - which is the start. The start is a Via point which you have to visit.
I haven't tried this, so I am just speculating, so don't shout me down about it !
Another bit of speculating :
I did a lot of testing with the behaviour of Closest Entry Point, and I watched how it developed and changed from the earlier generations of software from v2.30 up to v2.90. Interesting to see how the software is managed and rolled out.
But I have not tested it recently - certainly not 6.20 onwards.
However there is an annoying quirk which sometimes appears with what I call 'trip-tracks'. These are tracks which the XT has converted into trips. You end up with a magenta line which can not be recalculated. If you deviate from the suggested magenta line, it calculates a new route from where you are (call it Point A) to the closest point on the route ( point Z ). Which is very nice.
Before you dismiss this as being completely irrelevant, just follow my explanation through - because I have seen the same behaviour happen on a normal route and it may be happening in your situation.
So you are at Point A, and the XT is trying to get you to closest point Z. At Pt Z the original route continues to the end. In the meantime it has a new route section A-Z for you to follow. But you don't obey the instruction immediately. So you end up a little further along the road at Pt B. So you are now closer to a different point in the original route - call it Point Y.
Now I would expect the Zumo to calculate a new route from B to Y and then to the end. And that is exactly what it does in some tests that I have carried out on the road. But sometimes - in situations that I cannot work out - it doesn't do this. Instead it uses the route from A to Z as the original, and it plots a new section from B to A. Because point A is closer than the actual original route. So it is now going from B-A-Z-end.
Ignore again and the route becomes C-B-A-Z-end. I would have expected C-X-end.
again and you get D-C-B-A-end. It is laying a breadcrumb trail taking you back through all of the places where you should have follwed its instructions.
Ignore it forever, you eventually make your own way to the magenta line and it follows the route from there Ok.
I have seen this same behaviour on a normal route - but so far only when I know that the XT has recalculated my route (eg after skipping a point, or when it has received new info via the Drive app. Subsequent deviations from the route have then thrown up the same behaviour.
I am speculating that a route that has been calculated by the XT (which you have) followed by even a slight deviation, could result in a similar breadcrumb trail that it is trying to follow back to the original deviation.
I may be completely wide if the mark, but if you have not yet observed this behaviour and spotted what it is doing, you would just think that it is another weird routing suggestion.
The way to stop this ? Pull over, restart the route and select closest entry point again. Check the map is reasonable, and set off. But if you ignore the instruction, expect the same to happen again.
Today, I discovered something really important. I found another way that doesn't work.