@j12t The stock mode is cron is triggered by a visitor. So, no visitors, no cron. Or, heavily cached, maybe no cron. Once you get a visitor, cron is triggered and a 60-second lock put in place. It is possible during an overwhelm of traffic (cough fediverse previews cough) to call cron multiple times before that lock is in place.
Alternatively you can use curl
*/10 * * * * curl http://example.com/wp-cron.php > /dev/null 2>&1
And disable the cron in wp-config.php:
define('DISABLE_WP_CRON', true);
@jaz I tried those but it is still not reliable. Fortunately, @pfefferle is having a look: https://wordpress.org/support/topic/activitypub-message-sending-time-constants/