Actually cleanup the duchain from the background thread
Turns out that my commit bf183ce7a40 from May 2017 moved the
background cleanup task into the foreground thread... Sorry for that!
When we connect to the timer event, we must use a context object
that lives within the background thread. The thread itself *does not*
live in itself!
Fix this by passing the timer itself as context and
add an assertion to verify we don't ever do this again.