Да вот да, в прицепе статус синхронизации можно хранить в кубе.
Если недосинкалось то при старте инстанса ресинк
имхо, можно рсинкать в обе стороны со сравнением таймстампа в фоне/по хуку/etc, в гит объекты почти всегда добавляются новые (кроме голов, как я понимаю)
имя блоба = хэш от контента
из исключений есть git gc, который пожмет 100500 мелких блобов в общий архивчик+индекс (обычно оно на клиенте случается при массовых добавлениях)
+ есть git fsck но медленный (у меня была репа с 4M файлами * 4k коммитов, я в нем историю патчил))