Remove the remaining races, new and old.

Also, resolve a few other TODOs.

Change-Id: Icb39b5a5e8ca22ebcb48771cd8951c5d9e112691

@juliusv 
Other advantage of the new approach: We make sure we only return once t.newBaseLabels is drained. That's probably not required, but still safer.