the or statements here seem odd. What about a case where a success redirect marks the transaction as completed but a server to server notice marks it as failed? Do we not care about that? I wonder if we should at least log something like "form submission tried to override field X but it was already set to Y on the transaction object"