я ведь правильно понимаю, что restart_lsn полностью управляется постгресом и подписчик не может его двигать? подписчик может только обновить confirmed_flush_lsn?
Да, насколько я помню. Поэтому (занудно: если это не bug) можно посмотреть, что его "держит" на источнике (давно не было CHECKPOINT? Есть долгие открытые транзакции? Prepared transactions (точно не помню, относятся ли они сюда вообще)? Что я ещё забыл? ;) ).