i dunno how the `and not exists` is going to work out over time,
probably need some kinda checkpointing so that i don't have to rule out
the entire build history for a host every time it asks for a new task
some more refinements to how builds are run as well: build state discusses if a build us running, where the result is either a pass or fail
this is useful for deciding if a build is in progress and how artifacts (if any) should be presented