I'm not sure which of the modules you use but I assume they all work in a similar way.
When you set a publishing schedule for an item, it creates a new publishing schedule task in the database under
Then it's processed by
TaskDatabaseAgent. And it all depends on how frequently that agent is configured to be run.
By default it's 10 minutes.
<agent type="Sitecore.Tasks.TaskDatabaseAgent" method="Run" interval="00:10:00"/>
If the last time when
TaskDatabaseAgent was executed is 6 minutes before your scheduled publishing time, it will be executed 4 minutes after your publishing scheduled time, so your item will be "late" by 4 minutes.
You can change the value of the
"Sitecore.Tasks.TaskDatabaseAgent" to 10 or 30 seconds to make sure your items are published faster.
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:set="http://www.sitecore.net/xmlconfig/set/">