Okay, I have this working right now, but I'm not terribly happy with the way I did it, so I'm looking for suggestions of a better approach.
I have an NPC who normally wanders about my town. At a particular stage of the quest, he needs to be put in jail. The good news is that when that quest stage activates, I can guarantee the player is nowhere near the NPC or the jail. (The player is far away talking to another NPC at a fixed location, and that dialog updates the quest stage.)
What I have now is a quest stage result script that does a "movetomarker" on the jail-bound NPC, and he has a high-priority AI package that tells him to wander within a few units of the marker.
This is working, but what I've found is that the NPC being not in the same cell as the player causes his AI not to always evaluate right away (backgrounded), so sometimes he isn't in the cell until the player gets close, then he goes there by walking. I think what may be going on, really, is that he got moved to the marker on schedule by the movetomarker call, but then his previously-active AI package made him leave it until the player is close enough that his AI re-evaluates to the high-priority package.
Is there a better way to do this? The existing jail scripts in the vanilla game aren't much help because they operate on the player, so this whole issue of low-level processing is moot. I can't rely *just* on the AI to "walk him into jail" because the door is locked and he (of course) doesn't have a key.