> В результативной таблице счетчики должны быть в сумме равны 2, т.к. в Table2 всего 2 строки с записью Query = Data4
Что-то это запутало. Можете привести, что ожидаете в результате?
Как понимаю, проблема в том, что при ошибке в канал out ничего не передается и цикл в основном потоке зависает, ожидая сообщение из канала. Можно все-таки что-то передавать при ошибке в этот канал. Или сделать канал с ошибками и select из двух каналов