Não existe um único caminho mais rápido, pois depende de vários fatores. Certifique-se de que os índices no SQL estejam configurados e otimizados. Muitos índices matarão o desempenho de inserção/atualização, pois cada inserção precisará atualizar o índice. Certifique-se de fazer apenas uma conexão com o banco de dados e não o abra/feche durante a operação. Execute a atualização quando o servidor estiver com carga mínima. O único outro método que você não tentou é usar um objeto ADO Command e emitir uma instrução INSERT direta. Ao usar o método 'AddNew' do objeto recordset, certifique-se de emitir apenas um comando 'UpdateBatch' no final das inserções. Fora isso, o VBA só pode ser executado tão rápido quanto o servidor SQL aceitando as entradas.
EDIT:Parece que você já tentou de tudo. Há também o que é conhecido como modo de recuperação 'Bulk-Logged' no SQL Server, que reduz a sobrecarga de escrever tanto no log de transações. Pode ser algo que valha a pena investigar. Pode ser problemático, pois requer um pouco de manipulação do modelo de recuperação de banco de dados, mas pode ser útil para você.