Transport-wise we can definitely propagate timeout information down. I think we can configure the extra timeout in the client transaction context (with a reasonable default). And yes, we should be able to rely on the transport for propagating the connection timeout message, assuming that XAResource is informed about timeouts that is (via a rollback message I would assume?). The extra time value is related to the latency of the connection which can vary based on conditions, but in a normal setup would probably be fairly low (10 seconds or less) I would guess.
We definitely cannot count on synchronized clocks, so each node will be informed of the remaining transaction time upon inflow.
Also we probably need a better term than "fudge factor" in the API... maybe "extra time" or something.