You can update the Publishing.CheckSecurity setting, this will ensure that only items that the user has read/write/delete access to will be published.
Check security rights when publishing?
When CheckSecurity=true, Read rights are required for all source items. When it is
determined that an ...
It sounds like you may need to check the polling frequency for the agents. The polling frequency is how often the agents are checked to see if they need to run.
Based off the time you listed, try something like this:
You have something called Publishing Agent in Sitecore and Scheduling frequency as below.
<agent type="Sitecore.Tasks.PublishAgent" method="Run" interval="00:00:30">
<!-- Time between checking for scheduled tasks waiting to execute -->
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 /sitecore/system/Tasks/Schedules node.
Then it's processed by TaskDatabaseAgent. And it all depends on how frequently that agent is configured to be run.
You need to add another <store> to <ProperyStoreProvider>:
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:role="http://www.sitecore.net/xmlconfig/role/" xmlns:security="http://www.sitecore.net/xmlconfig/security/">