I'd argue a smarter though less greedy approach is to provide a 30-60 second buffer on the bottom of the hour so if there are issues starting the bot in the first 30-60 seconds, or if there is a multi second "desync" as you claim, the user isn't charged unfairly.