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

protected:
    friend class IMergeTreeDataPart;
    friend class MergeTreeDataMergerMutator;
    friend struct ReplicatedMergeTreeTableMetadata;
    friend class StorageReplicatedMergeTree;
    friend class MergeTreeDataWriter;
    bool require_part_metadata;
    
    
    String relative_data_path;
    
    ColumnSizeByName column_sizes;
    
    BrokenPartCallback broken_part_callback;
    String log_name;
    Poco::Logger * log;
    
    
    MultiVersion<MergeTreeSettings> storage_settings;
    
    mutable std::shared_mutex pinned_part_uuids_mutex;
    PinnedPartUUIDsPtr pinned_part_uuids;
    
    struct TagByInfo{};
    struct TagByStateAndInfo{};
    static const MergeTreePartInfo & dataPartPtrToInfo(const DataPartPtr & part)
    {
        return part->info;
    }
    static DataPartStateAndInfo dataPartPtrToStateAndInfo(const DataPartPtr & part)