I encountered the ContextSwitchDeadlock exception for the first time yesterday when I viewed a 256 x 256 terrain for the first time with my experimental viewer. (Previously was only a 16 x 16 test case.) The model was rotating at a constant rate. No other libraries are involved -- no XML, WCF, etc. My Main is decorated with [STAThread].
I don't know why I tried this, but, normally running with VSyncMode.On, I turned it off. The exception went away. I turned VSync back on, and the exception came back. That makes no sense to me.
More mysterious, this morning, I can't make it fail. VSync is on. I don't know what's different. I certainly didn't touch the code; spent all my time this morning searching and reading the forum.
I expect that the problem will reappear at some time. If it does reappear, I can send my project, which is only 3.3M zipped.