My apologies; I forget I tend to rotate through my terms like BIND and A records.
I use the term "applet" to mean an application which only shows up as a menu-bar item. Typically fairly small, our case isn't really any different, except that I rolled the extension loading code into it. It does a few things, including showing status, and ensuring that the extension stays loaded and running when it is intended to. I would prefer to have that capability in a daemon, but Apple insists that the network extension be loaded by an app that lives in /Applications
and has the ability to (indirectly) invoke user interaction.
Because we need it to run for each user, and not be (easily 😄) quittable (being a security-focused product), it is started as a LaunchAgent.
So that's a single application. Just faceless, interacted via the menubar, and does the extension loading/unloading.
(There's a bunch of other stuff, such as we need it to keep track of the extension's status because of crashes, and because on upgrades we sometimes get into a state where we can no longer communicate with it via XPC so we need to unload and reload it, so we need to have something ping it to check that, and so forth, and so forth, and so forth.)
Does that make more sense?