Hmm... There is an option to disable a character with Lua script but I forget whether or not if it also ends up hiding the character too.
Try adding this inside of an "execute a script" action part...
Characters["Tom"].Active = false
Alternatively you could create a condition
& wrap all of your actions inside of the npc with an if condition = true / false query to determine if the command or item dropped should do anything or not.
Alternatively (again)... create a scene object version of your npc. Create a condition & assign it to the properties tab of the object to control when the object should be shown. Now when you no longer want the player to be able to interact with the npc you can teleport the npc to another scene & change the condition value you set to the scene object immediately afterwards to show the scene object version.
I'm just quickly rattling off a few ideas / methods here. Hopefully they will make a little sense to you...