Indeed, there could be a thread pool of 1 doing what the FetchingThread is doing, but instead I just created a thread to do it as that was less complex. Unless I'm missing the point?

Performance-wise, I can only say that it makes the fetching bottleneck somewhat less painfully obvious during local testing (which was the incentive for me in the first place) – of course, 'usefulness' in production is a subjective thing and also relative to write performance at a given time. But anyway, I've already done it now...