The logic here does filtering to avoid triggering a continuous deploy from an old build (i.e. a build that started first but ended second - this happens surprisingly often). Should probably be moved into the new Observable logic so the consumer doesn't need to deal with it.

I've also realised that this doesn't handle TC7 branches. If for a TC project:
 - a master build starts
 - a build of a branch starts
 - the branch build completes successfully
 - the master build completed successfully

Then the code above will disregard the master build as it has seen a 'later' build complete successfully but is ignoring the context of the branch.

I suspect all of this stuff can be moved into the new Observable/Unseen work...