Hi,
The dates you set in the plugin and in the config for the mass actions is the "last time the process was run". And to be able to check if the process can run, it checks that the current date is bigger than the "last time the process was run" + the frequency.
So if a process runs at 1h00 one day and you have a cron task running once every hour at 00 minutes each hour, it means that the next day, when the the cron is triggered at 1h00, it won't be bigger than the "last time the process was run" + 1day, and thus is will want for the next cron task at 2h00.
To mitigate that, you could configure your cron task to run every minute. For example, this service can do it for you:
cron-job.org/en/
That way, the process will only shift by 1 minute every day.