How can I automatically spawn an actor from a plugin in Blueprints (or C++) as the plugin gets loaded?

All good points. In my original scheme of using GameInstanceSubsystem, the code would run one time only when the plugin gets loaded, so issues like level streaming wouldn’t be a problem. Code being present during a menu level would also not a big issue. That said, the quoted text made me think of what the actual owner of the code should be. I’m now considering a different approach.
Part of what I’m trying to accomplish is add this controller to a plugin so that it’s easy to use in multiple projects. Ideally the setup in each project would be minimal so an automatic solution seemed enticing.
Because the controller does listen to user inputs, the code should actually be in the Player or PlayerController.
Thanks for the input to all.