We have used DI for a number of years and generally use a pattern very similar to the one you suggest in our common libraries. The problem we seem to be encountering now is that the DI plugin, which is usually defined as part of a IPluginGroup is not called first. We need to be able to have plugin type that is guaranteed to be loaded first, that is not the main plugin of any one project.
As a secondary concern, is it recognized Post that plugins are instantiated even when they are disabled, this means that even a disabled plugin can cause the solution to crash.