"But I expect PMT to increase the number of context switches and that can only slow the system down. We may be talking at cross purposes. PMT is usually associated with block multi-threading, and that could certainly reduce bottlenecks."
Yes, but unless a task is using 100% of the CPU, it won't get process-switched unless it yeilds. And you want to force it to in that situation anyway, for precisely the reasons you describe. So there really aren't that many unwanted context switches.