The way the system works is that all the outbound mail that is injected is put into the account's queue sorted by the domain. If an open connection is available, the messages are attempted right way. If
there are already messages going to the same domain, the message is added to end of the queue for that domain. If the message is deferred due to a connection problem, a delivery rule being fired, or the throttle has been reached for that domain, it will remain queued until it's time to send again to that domain. The time it waits is the time specified in either the account's defer setting, the delivery rules setting, or the amount of time specified in the greylist optimization file.
Please refer to this article for more info on greylist optimization: How does greylist optimization work?