**Describe the issue**
Maybe it's a bug in my implementation of #33271

**How to reproduce**
Run some long query and look carefully with full attention.
{
    auto & thread_to_times = thread_data[host];
    if (thread_to_times.contains(thread_id))
        return;
    thread_to_times[thread_id] = {};
}
void ProgressIndication::updateThreadEventData(HostToThreadTimesMap & new_thread_data, UInt64 elapsed_time)
{
    for (auto & new_host_map : new_thread_data)
    {
        host_cpu_usage[new_host_map.first] = calculateCPUUsage(new_host_map.second, elapsed_time);
        thread_data[new_host_map.first] = std::move(new_host_map.second);
    }
}
size_t ProgressIndication::getUsedThreadsCount() const
{
    return std::accumulate(thread_data.cbegin(), thread_data.cend(), 0,
        [] (size_t acc, auto const & threads)
        {
            return acc + threads.second.size();
        });
}
double ProgressIndication::getCPUUsage() const
{
    double res = 0;
    for (const auto & elem : host_cpu_usage)
        res += elem.second;
    return res;
}
ProgressIndication::MemoryUsage ProgressIndication::getMemoryUsage() const