Thanks. I wasn't really sure what you were talking about so I decided to try and isolate the problem by placing the code, in its most simplified form, in a test function that I could call after the addin's (and Excel's) startup had completed. If it failed there, my next step was to create a stand-alone example project containing only this code fragment to demonstrate the problem and then post back here.
The problem revealed itself as soon as I ran the code fragment after Excel startup.
The try/catch does not catch the exception when this code runs at Excel startup. It simply fails silently.
When run after startup, the code does catch the exception and the exception's error message explained exactly what my problem was: The resource could not be found. Duh!
It turns out that this is because I am playing around with the project's namespace in order to build the addin for two different product names and namespaces. Problems with some of the conditional compilation commands I used caused the product I was testing to look for the resource in the wrong class.