Ok; if we had the opportunity to replicate the issue it would be easier.
Anyway, you are right and there are a couple of fixes that we can do to improve the management of the internal threads.

There is a caveat, though:
The thread involved in your thread dump, i.e. the thread which dequeues data from streaming connections (or waits for data on long polling connections) cannot be declared as a background thread,
because, during the normal session activity, it is possible that this thread is the only one active.

For now, we need that you try to replicate the issue with a test version of the Silverlight library, which we will be sending you privately.