(3) Например, не завершать транзакцию, если не получено подтверждение от 1С. Если таймаут или ошибка в 1С то откатывать. Делать это последним этапом, чтобы минимизировать риск отлупа транзакции уже после получения подтверждения от 1С.
(5) Можно вести журналы распределенных транзакций где одна из сторон выступает координатором распределенных транзакций. С записью информации необходимой для отложенного отката.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший