I know this is an Inform 7 area but TADS 3 with Adv3Lite provides numerous options for interaction between the PC and the NPC.
Here is a listing from the index of Eric Eve’s Adv3Lite Manual:
Actor States
AgendaItems
Basic Ask/Tell
ActorTopicEntry
Suggesting Conversational Topics
Special Topics
Topic Groups
Conversation Nodes
Hello and Goodbye
Player Character and NPC Knowledge
Giving Orders to NPCs
String Tags and Object Tags
NPC-Initiated Conversation
TADS 3 with Adv3Lite is well worth consideration.
PS. Even if you don’t use TADS, the techniques may be transferable to other development systems.