Remove the remaining races, new and old.

Also, resolve a few other TODOs.

Change-Id: Icb39b5a5e8ca22ebcb48771cd8951c5d9e112691

@juliusv 
With `stopScraper` having been synchronous already (no capacity), is this strictly needed? AFAICS, whenever we read from the channel to unblock the sender, the scraper was already at a point where it was currently not scraping, and then exited right afterwards?