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

{
    String source_path = fs::path(zookeeper_path) / "replicas" / source_replica;
    /** TODO: it will be deleted! (It is only to support old version of CH server).
      * In current code, the replica is created in single transaction.
      * If the reference/master replica is not yet fully created, let's wait.
      */
    while (!zookeeper->exists(fs::path(source_path) / "columns"))
    {
        LOG_INFO(log, "Waiting for replica {} to be fully created", source_path);
        zkutil::EventPtr event = std::make_shared<Poco::Event>();
        if (zookeeper->exists(fs::path(source_path) / "columns", nullptr, event))
        {
            LOG_WARNING(log, "Oops, a watch has leaked");
            break;
        }
        event->wait();
    }