Я не использовал Silverlight, но я проделал довольно обширную работу с Java-апплетами и Flash, поэтому я прокомментирую с этой точки зрения.
Вы правы, что JavaScript является однопоточным.Все, что заставляет его блокировать, предотвратит все другие вычисления и действия.В некоторых случаях он даже блокирует браузер, хотя новые браузеры становятся лучше при разделении вкладок на отдельные процессы, что помогает.
Любая нить в плагине, например Silverlight, полностью отделена от JavaScript в браузере.Интерфейсы между ними могут быть заблокированы.Если поток пользовательского интерфейса Silverlight блокируется при обмене данными с собственным JS, никакая другая работа не будет выполняться в этом потоке, пока он ожидает.Другие потоки могут продолжать работать в обычном режиме.
Чтобы ответить на ваш вопрос о том, может ли JS выполняться одновременно, когда выполняются действия в потоке пользовательского интерфейса Silverlight, я не вижу, почему нет.У них есть отдельные среды выполнения, и до тех пор, пока они не взаимодействуют друг с другом (что может привести к блокировке), они должны иметь возможность нормально работать в изоляции.
В моей интуиции говорится, что то же самое можно сказать о множественныхЭкземпляры Silverlight на той же странице, но это действительно вопрос архитектурного проектирования, на который я не могу ответить.
Надеюсь, это поможет!