PerformanceCounter reporting higher CPU usage than what's observed
Solution 1:
new PerformanceCounter("Processor", ...);
You are using the wrong counter if you insist on seeing an exact match with Task Manager or Perfmon. Use "Processor Information" instead of "Processor". The reason these counters show different values is addressed pretty well in this blog post. Which counter is "right" is a question I wouldn't want to touch with a ten-foot pole :)