Yes. It seems like the next cron timing is taken from the end time of the script, not the start...
so if a script ends at 3.52.33 seconds, next one will run at at 3.54.00. That is my impression.
Or maybe, as you say, this only happens if the script ends within the last 10 seconds window.