Hey Dan,
We have our windows agent services configured run with the "Allow service to interact with Desktop" option.
You can also start the agent using the "start-agent.bat" and leave the console window running.
This is more of Selenium talk but here's what our setup looks like on our java projects.
maven or gradle for builds
Junit + Selenium Webdriver (not RC)
Headless Chrome Driver and Firefox Driver on linux
the Internet Explorer Driver on windows.
On one of the .net projects
nant + rake + nunit
Selenium Webdriver.
Unfortunately it takes a while to get rid of flakiness. Here's a summary of the team's experience (a bit dated).