Um script de inicialização suspenso não é muito ruim para solucionar problemas. Usando o conjunto de diretivas resultante (RSoP), você também poderá obter uma lista dos Scripts de Inicialização aplicáveis ao computador. Como você só tem um "par" de Scripts de Inicialização, é mais fácil examinar os scripts individualmente e, se necessário, executá-los como um Administrador (ou como SISTEMA, se preferir simular completamente o processo de inicialização) para ver qual está demorando muito para ser concluído.
Não há bom registro de eventos, estoque, que mostrará qual script está demorando para ser executado. Acredito que o registro em log detalhado do USERENV (procure pelo termo "RunDiagnosticLoggingGlobal" para ver o que estou falando) forneceria eventos de início / parada de execução de script, mas isso é muito trabalhoso se você tiver apenas alguns scripts .
Se eu tivesse um lote de scripts e não tivesse ideia de qual estava lento, provavelmente começaria com uma pesquisa binária através dos scripts, negando aos direitos do computador de teste para executar metade dos scripts, depois metade da metade, etc, até localizar o script do problema.
Corrigir um script quebrado provavelmente está além da missão do Server Fault, mas isso deve permitir que você isole o script lento, pelo menos.