You didn't say which version of Visual Studio you're building with. That makes a big difference.
That said, my solution to this was to simply set the build state to the first deployment target upon a successful build.
In 2008, which uses MSBUILD, things are done through targets. I have a custom target that's executed post build.
<Target Name="AfterEndToEndIteration" Condition="1 == 1" DependsOnTargets="Publish">
<SetBuildProperties TeamFoundationServerUrl="$(TeamFoundationServerUrl)" BuildUri="$(BuildUri)" Quality="Development" />
In 2010, there is a SetBuildProperties task. I copied and modified the default XAML template, adding the steps to set the quality if the build was successful. I branch that template into each of my team projects, deleted the default and based builds off
my custom template.
Frankly, I don't remember all the steps required for the 2008 version. I did that a long time ago. Before I spend any more time with it I'll leave it at this and see if it helps. I haven't used the newer TFS yet.