I think it may be because of one of the last requirements in the query I linked to above.
After checking that the user is real, activated, not staged, and not suspended, and checking that they didn’t disable digests and the frequency is greater than 0, there is a primary email and the bounce score is okay, there are some time-based checks:
Last seen was more than digest_after_minutes ago
Last seen is within suppress_digest_email_after_days
The last check if the user should receive a digest was digest_after_minutes ago.
I think the last one might be the cause. If Discourse tried to send the digest yesterday and digest_after_minutes is a week, then it won’t try again until a week has passed. If you reduce that, the next try happens sooner.