See the question and my original answer on StackOverflow

This is due to the intermediary windows interop stack that the WindowsFormsHost creates to hande Windows Messages for Windows Forms technology.

It's based on an almost standard NativeWindow class, and unfortunately, this class just eats exception by default. You can have a look at it using Reflector or any other IL inspection tool. The heart of this class is this method:

private IntPtr Callback(IntPtr hWnd, int msg, IntPtr wparam, IntPtr lparam)
{
    try
    {
        // process message
    }
    catch (Exception exception)
    {
        this.OnThreadException(exception);
    }
    ...
}

By default, the OnThreadException method is ... empty. In theory you could create a class that derives from WindowsFormsHost, especially the BuildWindowCore method. I've tried to do it, but it does not work as WindowsFormsHost implementation uses a lot of private stuf....