Overhead will depend on how well you optimise the SQL-side stored procedure, I suppose. My version runs OK but might contribute to a performance problem. You could use techniques like WITH (NOLOCK), but this won't have much effect unless you're hammering the DMVs for some other purpose. Or adjust the data collection time interval to suit - i.e. if you could use the data every 30 seconds rather than every 5 seconds, you'll lower the load.
I adapted the techniques I explained in this article only the other day to build a browser-based view of the CPU/scheduler activity. We use Spotlight here, so the info complements the graphs and monitoring that Spotlight offers. It's interesting to watch load build on each scheduler and correlate that to increased CPU activity as shown by Spotlight. I've also used looping techniques to automatically refresh the browser window.
Attached is a screendump of the end result. The formatting is achieved by using VBScript to write a HTML file with CSS3 styling. The bar chart blocks are actually filled-in table cells. Because I use this at work I'm probably prohibited from sharing the code as-is, but if I get around to generalising it I'll publish it in the scripts section.
Thanks for your feedback.