I understood and agree with all of your stated assumptions. However, I didn't follow your naive implementation. I would definitely caution against using a coordinator.
The transaction must enter the system somewhere. The 'coordinator' is that entry point, with a durable log so we don't inadvertently lose the transaction. It's only job is to push the transaction to all the workers involved.