I'm no expert, btw. However, I don't think that unifying the events for generic NPC behaviour improves performance; I think it's better for organisation and debugging purposes (so you fix bugs in only one area instead of each NPC's event area).
It looks like you didn't use Families, which may be more difficult to pick if you intend to have different Sprite objects to represent different NPCs. But this depends on how you intend to organise your NPC graphics.
If you intend to have different Sprite objects for different NPCs, then you would want to create a Family and put those NPC Sprites in there, and use the Family to replace `actor_NPCMask`.
Or, if you intend to use the Animation Folders of `actor_NPCMask`to define separate NPCs (for example, you have an Animation Folders such as 'NPC1_walk', 'NPC2_walk', 'NPC1_idle', 'NPC2_idle', etc), then you don't have to change anything in your event sheet. But of course, you have to maintain `actor_NPCMask` as your main Sprite object that contains all of the graphics of your NPCs that will use this event sheet. There's also the added complication of keeping track of which animation a particular `actor_NPCMask` instance is going to use; you'll probably need to create an instance variable determining the name/identity of a particular `actor_NPCMask` instance and then match the instance variable with the Animation name.