Currently when uploading a new message to a public outbox all existing messages are cleared, by design, so that the public outbox only has a single message in it at a time.
This is currently racy: two different public outbox storage requests arriving at approximately the same time at different swarm entry points (or some messages arriving late, e.g. from a temporarily down node with delayed delivery) would result in different messages being stored on different subsets of the swarm.
This should be fixed by incorporate the timestamp as well into the outbox storage logic: storage should only be allowed if there is no existing (non-duplicate) message in the outbox with an equal or later timestamp, and an error should be returned if attempting to store into an outbox that already has a newer message.