I'm not sure how I'd fix the NPC movement, personally. Maybe instead of snapping to the new direction they could smoothly rotate to it instead? That way it'd still be unpredictable, but it'd give the player some time to react. Not sure how it'd work in practice though!