That is quite annoying for me as well. Looking at the console while playing, i see a lot of those situation come form misinterpreting "follow" by the AI. Instead of "In this excerpt, is Mirel currently following Sybil somewhere?" I'd try "... did Mirel agree to physically follow Sybil somewhere?" because I sometimes see that the logic is sound, just the question asked was not precise enough.
In my example below, the reasoning for starting the follow routine was just talking by the crate: "Mirel is actively engaging Sybil with playful banter and offers to show her around, indicating she wants to continue the interaction." - and they would still be talking if the dialogue was not terminated due to following. Above that there is a check if the location changed, which seems to confirm that the AI knows what is happening: "The conversation does not mention a change in location; it focuses on the crate and tools."
Actually, maybe it would be best to just remove the part of the procedure that terminates the dialogue? That way we could role play our way out of it - I told NPCs to stop following me many times, just to start a new conversation to stop the follow behavior.
It's difficult to see the whole picture by just looking at the API calls, because you're not seeing the decision trees that trigger them in the first place. There are many hours of trial and error, and sometimes performance implications, behind why these things are worded in the strange way they are.
As for your suggestion, it opens up other creative ways of misinterpretation. "Sure, I'll take the road to the capital with you later tonight." -> Clearly she agreed! -> Following you! You could add more layers of various checks to account for this kind of misinterpretation here, but at some point you have to, again, start thinking about performance. I still believe it's a decent suggestion, and I will try replacing the already existing double checks with it.
Starting at 1.6.2d, this also no longer forcibly ends the dialog, and works the same as it does when talking to multiple NPCs.