Have five test 'plugins' made up, and all seem to be working, save one annoying caveat.
The Emergency Reset, Tracking On/Off, and 'Call' functions all work...
Except that there appears to be a slight difference in how the StartConversation function actually works, and how it's often perceived to work. That being: it does not appear to work on NPCs in another cell, even with an accompanying Enable command.
For those of you unversed in scripting, that means your calls go unanswered if the companion in question isn't in the same cell as you.
I can still try doing it via package. A good old fashioned 'Find Player' package backed by an Enable command always seems to get them moving.
I swear, it'd be nice if something in this damned game obeyed its own rules for once, though. Granted, the exercise in alternate paths to one's goals are useful and sometimes even amusing from a purely "wow, isn't this pathetic" standpoint, but having to constantly come up with six ways of doing every idea gets old...