Couldn’t you just make an atomic commit using booleans in your blueprint? Player A accepts trade(Set Bool), Player B accepts trade(Set Bool), items transfer ownership(Set Bool), then compare bools and execute.
Maybe if you are making a High Speed Trading terminal for Wall Street that might not be acceptable, but for a game?
Am I missing something?