Thing I would look for first (and I guess Tom will is that maybe some part of code now has Mutex that serializes the access to it - it in turn makes the bottleneck for other threads, as they have to wait for the Mutex.
Such things can happen quite innocently, maybe just call something in GUI and be stopped by GuiLock...