Потерянный webhook остаётся открытым решением
Таймаут не сообщает, произошло событие или нет. Повтор запроса может помочь, а может создать второй внешний эффект.
Пока команда не приняла recovery contract, нельзя молча достраивать политику восстановления за владельца.
Нужно явно решить: кто проверяет состояние, когда допустим повтор, как распознаётся дубль и кому принадлежит остаточный риск.
Где в вашем процессе записаны эти решения?