I was looking into this yesterday when I had a similar problem. If you open the published source code
Timer.cs[
^] and scroll down to the MyTimerCallback method you'll see that the event invocation has an empty catch block.
Although I had never noticed it before, the behaviour is documented
Elapsed Event[
^] (see the remarks section). I wonder if the comment about this behaviour being "subject to change in later versions of the framework" is a get out in case they ever want to fix their mistake!
Alan.