The path routing only looks at the distance (or rather the path cost) to find the path the AGV will take. Allocations or accumulation rules are not taken into account. As such, if you tell the AGV to travel to CP6, it will choose the path with the lowest cost, which means the one that traverses CP4.
You can either experiment with changing the path cost before redirecting the AGV.
Or you use REDIRECT_AND_CONTINUE_AS_PREARRIVAL as a sort of travel via X condition. The issue there is that the task sequence is telling the AGV to travel to CP4. So you can't use this flag, as the 'continue' would have the AGV try to reach CP4 again. So in your current model you'd first have to redirect the AGV to CP5 'AS_FINAL' and then, once it took the other branch on the intersection again redirect it to CP6.
Lastly, and most importantly, you should not put any actual logic that influences the models behaviour into Draw/PreDraw triggers. The framerate (or the fact whether the 3d view is even open) having an effect on the model logic will invariably lead to issues with repeatability.
Either use the control points triggers (as in the attached model) or use the Waypoint tab in the AGV network properties.
agv-route-fm.fsm