IMHO social interactions are tuned far too aggressively. I understand why they did that so Sims will interact with each other, but there should be something in the code that makes player input take priority. For example, when I try to run a Get to Work retail store the hardest part is always disengaging my Sim from customer conversations so they can do a retail task like check someone out. You tell them to do it, then you have to aggressively cancel all the conversations that keep inserting themselves in front of it until they respond. While I don't want the game to instantly change tasks either (by all means finish what you were doing), once I have given a new task an NPC should not be able to insert anything new into the chain in front of it.