Desculpe, isso não é exatamente uma resposta, mas o problema foi resolvido.
Para começar, acabei de notar uma pergunta semelhante aqui: C ++ Loadlibrary () Erro 3765269347. Eu acho que este dá mais detalhes e vale a pena dar uma olhada se você estiver em uma posição semelhante ao que eu era.
Meus agradecimentos a @whozcraig, @danieldaranas e todos os outros que fizeram comentários úteis. Para outras pessoas lendo isso, há um bom artigo sobre o HRESULT que se expande em seus pontos na Wikipedia: http://en.wikipedia.org/wiki/hresult.
No meu caso, o problema desapareceu tão misteriosamente quanto surgiu. Eu criei uma classe C ++ para chamar a DLL regularmente. Meu esforço original carregou a DLL imediatamente antes da primeira chamada e em cache na memória. É o mesmo em princípio de como funciona por mais de um ano. Isso resultou no misterioso erro acima.
Eu o refatorei para carregar a DLL durante a construção, mas para extrair apenas a função dele no tempo de execução. Aparentemente, isso funciona e provavelmente é uma maneira melhor de fazê -lo (carregando a DLL durante a construção, liberando -a durante a destruição). Como há muito pouco acontecendo entre a construção e a primeira chamada para a DLL, não consigo ver por que um método deve produzir um erro do sistema operacional e o outro não.