For the observer to deny that A was actually sent first is to deny objective reality.
There is no such thing as objective reality in a distributed system (unless one is God). There are two problems here, first physical reality itself is not totally ordered, and second, each person has access to only his individual sense perceptions and measurements unless he trusts others. In short, your "objective" reality is not mine, especially if I don't happen to trust you. (From recent forum posts, it would seem prudent not to trust a large number of posters, so please don't take my remark personally.)
It is logically impossible to achieve reliable consensus in a distributed asynchronous system. This was proven decades ago by Nancy Lynch et. al., and the proof didn't even require malicious nodes, just nodes that could fail or run slowly. Bitcoin doesn't circumvent this proof. That's because Bitcoin does not
ever give 100% confirmation that a transaction was committed. Bitcoin does not and can not do what is logically impossible. One can circumvent this situation by positing the existence of a reliable central authority who controls the network and serves as "the decider", but then everyone will have to trust this "decider". (And when this "decider" goes "out to lunch" one will still have to wait to see if one's transaction was confirmed.) This is not what bitcoin is about.
One can make a case, possibly a good case, that the bitcoin protocol can be improved to minimize the time constants involved, which are presently nowhere near the underlying physical limits because each node does extensive computation prior to forwarding transactions and blocks. But this is not going to change the underlying situation, which is that there simply is no such thing as "objective reality" just a ceaseless flow of events that are relative to time, place and person.