ASP.NET API DI (Inyector simple) referencia nula en el reciclaje del grupo IIS

Anteriormente publiqué otra pregunta, pero después de algunas observaciones, me he reducido a lo que puede estar causando mi problema. Básicamente, una vez que se recicla el grupo de aplicaciones IIS, mi inyección de dependencia (que termina buscando algunas DLL mediante la creación de una aplicación NWatch) falla. INWatchApplication es una dependencia para el proyecto de API web.

Aquí están los contenidos de Global.asax:

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    GlobalConfiguration.Configure(WebApiConfig.Register);
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);

    var webApiContainer = new Container();
    webApiContainer.Options.DefaultScopedLifestyle = new WebApiRequestLifestyle();
    RegisterTypes(webApiContainer);
    webApiContainer.RegisterWebApiControllers(GlobalConfiguration.Configuration);
    webApiContainer.Verify();

    GlobalConfiguration.Configuration.DependencyResolver =
        new SimpleInjectorWebApiDependencyResolver(webApiContainer);
}

private void RegisterTypes(Container container)
{
    var virtualPath = HostingEnvironment.ApplicationVirtualPath.Substring(1);
    string baseName = null;

    if (!string.IsNullOrEmpty(virtualPath)) {
        baseName = HostingEnvironment.SiteName + "_" + virtualPath;
    } else {
        baseName = HostingEnvironment.SiteName;
    }

    var nWatchApp = new NWatchEntityApplication(GetNWatchConfig());
    Trace.Listeners.Add(new DevOps.Diagnostics.DevOpsLogTraceListener(baseName));
    container.RegisterSingleton<INWatchApplication>(nWatchApp);
    container.Register<NWatchDbContext>(() => nWatchApp.GetDbContext(), Lifestyle.Scoped);
}

private INWatchConfiguration GetNWatchConfig()
{
    Configuration rootConfig =
        System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(HostingEnvironment.ApplicationVirtualPath);
    return new NWatchSystemConfiguration(rootConfig);
}

He leído varios blogs y publicaciones que hablan de cómo las DLL cargadas dinámicamente parecen ser un problema, porque cuando IIS recicla los grupos, no se copian al AppDomain. (Podría estar totalmente equivocado aquí, pero es mi sospecha).

¿Cómo me aseguro de que todas las DLL que se hayan cargado (cuando la aplicación se implementó por primera vez en IIS) continúen estando disponibles para la aplicación incluso después de un reciclaje?

Respuestas a la pregunta(1)

Su respuesta a la pregunta