What about when creating a subscription via the API? That calls the logic action function directly and doesn't go through this controller, so the ISubscription plugin would not get called. Maybe this code that calls the ISubscription plugin belongs in the action function not the controller?

I know that e.g. IDatasetForm plugins are called by the package controller, but that plugin interface is for modifying the package _form_, so it deliberately isn't used by the API.