Я думаю, что использование Dispose в теме может быть проблемой.Попробуйте обернуть вызов SPSite в оператор using, чтобы вернуть .net некоторый контроль над утилизацией.У меня работала многопоточность в SP2010, но это была свинья, и у нее было много «незапланированных функций».
В то время мне звонили в службу поддержки с Microsoft, и они ответили, что это возможноне поддерживается.