Похоже, что немного опоздали, уже есть
похожий таск в багтрекере. Пример, воспроизводящий проблему там, правда, на QtConcurrent, но это не важно, т.к. последний, насколько я помню, те же QRunnable использует. А вот примечателен тот момент, что как и у меня используется связка "QThreadPool::releaseThread()" и "QThreadPool::reserveThread()". Может из-за них в т.ч. проблема.