Is there a way we can halt the build queue (and futher queued tasks from running) when there is a failure?
Now it is only possible to pause build queue manually.
You can configure snapshot dependencies for build configurations so that a build configuration won't run if previous ones are not successful.
We have the related feature request - http://youtrack.jetbrains.com/issue/TW-5146.
Also you can find an example of similar plug-in in this discussion - http://devnet.jetbrains.com/message/5484420#5484420.
If nothing is relevant for you please feel free to create a new feature request in http://youtrack.jetbrains.com/issues/TW.