I'm not sure if this problem is what broke wp-cron, or just only uncovered when trying to fix a broken wp-cron - but it seems wp-dbmanager doesn't handle folders it can't access very well.
Warning: readdir() expects parameter 1 to be resource, bool given in /home/{...}/wp-content/plugins/wp-dbmanager/wp-dbmanager.php on line 392
I disabled wp-dbmanager and tried again, which gave me the alert that I couldn't write to specific folders. Turns out I was running as the wrong user, and with the right user all was good.
Looked at the code anyway, and see that the lines around 392 in wp-dbmanager don't check for the false returned by opendir if $folder
doesn't exist or is banned by permissions.
I could do a PR to check it in place, but think the check should probably be at a higher level as is_emtpy_folder
seems inappropriate for what should be 'is_writeable' or something.