you must never use an instance of ScriptContext on another thread, without wrapping it into 
using (var context = ScriptContext.Init***) // or ScriptContext.Fork
{ ... }

Once *you* get an instance of ScriptContext on a thread, *you* are responsible for cleaning it up.