Symptoms: all threads in BackgroundScheduledPool busy, lot of tasks in replication queue, none of the tasks is executing. 

![Screenshot from 2021-04-16 16-21-44_](https://user-images.githubusercontent.com/1549571/115193796-e767d600-a0ec-11eb-887c-5c9c2412e50c.png)

Related to #16895

Possible workarounds (poor options): increasing the background_schedule_pool_size to huge values, or restart server every time when that happens etc. - 

{
    LOG_TRACE(log, "dropAllData: waiting for locks.");
    auto lock = lockParts();
    LOG_TRACE(log, "dropAllData: removing data from memory.");
    DataPartsVector all_parts(data_parts_by_info.begin(), data_parts_by_info.end());
    data_parts_indexes.clear();
    column_sizes.clear();
    
    
    if (!getStorageID().hasUUID())
        getContext()->dropCaches();
    LOG_TRACE(log, "dropAllData: removing data from filesystem.");
    
    clearPartsFromFilesystem(all_parts);
    for (const auto & [path, disk] : getRelativeDataPathsWithDisks())
    {
        try
        {
            disk->removeRecursive(path);
        }
        catch (const fs::filesystem_error & e)
        {
            if (e.code() == std::errc::no_such_file_or_directory)
            {
                
                tryLogCurrentException(__PRETTY_FUNCTION__);
            }
            else
                throw;