Is Bitcoin's gossip protocol perfect? With Bitcoin's gossip protocol, could we take it for granted that if I sent a transaction, for example, at 1:00 PM on 1st January 2018 UTC that then every node connected to network at 1:00 PM would receive that transaction by let's say (for network latency) 1:05 PM 1st January 2018, because of how the gossip protocol works?
And by everyone I mean every single node that was connected to the network at that time.
Given some time for network latency, do messages reach all connected peers, and if so, how long does it take for them to do that?
Given some time for network latency, do messages reach absolutely all connected peers and how long it takes for them to do that?


Usually, standard transactions that pay a sufficient fee to be acceptable to most mempools, without any conflicts on the network will reach almost all nodes within a minute or so.

However, there is no guarantee whatsoever that it will reach all nodes. Every node has its own relay policy, and even perfectly correctly behaving nodes may choose not to relay anything at all. 

Most of the delay is due to intentional delay in the propagation. Random delays are added before forwarding in order to obscure the source of transactions. Each hop on average takes 5-10 seconds.

Bitcoin has a subsystem with absolute propagagion guarantees though - the blockchain. While obviously subject to not being partitioned off the network, every node eventually learns the best chain. There are no guarantees on how long that takes, or which transactions are included in it.