Sorry Ian, Minesh has been on vacation for a while and I was regularly checking his queue for the first week but your reply came in later and I just noticed it now.
Another supporter will continue with this ticket, but in the meantime I can say that notifications related to post expiration are triggered by the scheduled events (WordPress's version of cron jobs) which are set to periodically check if posts should be expired.
If you go to Toolset > Settings > Forms and check the settings for Post Expiration, I'm guessing the schedule on your site is set to twice daily, which would account for why the notifications appear to be sent at particular times, with the caveat that a timed scheduled event will only run when there is any activity on the site.