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. - 

{
    auto zookeeper = getZooKeeper();
    
    const String quorum_last_part_path = fs::path(zookeeper_path) / "quorum" / "last_part";
    
    while (true)
    {
        Coordination::Stat added_parts_stat;
        String old_added_parts = zookeeper->get(quorum_last_part_path, &added_parts_stat);
        ReplicatedMergeTreeQuorumAddedParts parts_with_quorum(format_version);
        if (!old_added_parts.empty())
            parts_with_quorum.fromString(old_added_parts);
        
        if (!parts_with_quorum.added_parts.count(partition_id))
        {
            
            break;
        }
        parts_with_quorum.added_parts.erase(partition_id);
        String new_added_parts = parts_with_quorum.toString();
        auto code = zookeeper->trySet(quorum_last_part_path, new_added_parts, added_parts_stat.version);
        if (code == Coordination::Error::ZOK)
        {
            break;
        }
        else if (code == Coordination::Error::ZNONODE)
        {
            
            break;