Setting an entity to auto-face doesn't make it stop moving when it gets activated. One of the easiest ways to force an entity to stop moving is to do something like this...
void talk_to_guy() {
// this is called when you talk to a particular entity
// what we're doing here is storing the entity's current
// speed, then setting it to 0, effectively stopping its
// movement
int reset_speed = entity.speed[event.entity];
entity.speed[event.entity] = 0;
// talk with the guy
. . .
// now you're done talking to the guy, so clean up
// by setting the entity's speed back to normal
entity.speed[event.entity] = reset_speed;
}
This is a little kludgy and it might be nice to function it out or whatever, but it works. In fact, it's exactly what I did in Journey to Black Mountain.
Good luck.