Sorry, I was confusing things - the timeout I was thinking of happened in the transaction manager itself, and it didn't matter whether we were registering a synchronization or a full XA resource.
Replication timeout sounds like something that could be easily removed for commit command RPCs, but there may be plenty of other things that could fail without the caller knowing. So the question remains, should give up on synchronizations (except maybe with asynchronous commit/1PC, if we decide to keep that)?