Think the recommenation for how to run cron is now every minute. Howard/others can verify that if you think I'm incorrect.
There are probably many things that need catching up on your site, so suggest you login as root and go to /path/to/moodlecode/admin/cli/ and run cron. php cron.php [ENTER]. That error or take a very long time. If it errors, please don copy and paste the error output to a text document for later posting back here in this thread. Continue to try however ... like I said, there might be a lot for Moodle to catch up upon.
moodledata in public_html isn't the normal location on a dedicated server. And that is one of the reasons for your concern on permissions. public_html is normally used in a setup of apache's 'user space' - which is restricted. So where are you hosted and please provide some specs of hosting setup. You might be hosted on something that's simply under-powered for what you want to do with it. OR you could/might be able to move moodledata to a more secure location AND then be able to be more liberal with permissions for the 'apache' user.
task ... use the Site Admin menu search box for 'task'. Looking for link to 'Scheduled Task'. Those are, for lack of a better term, sub-crons. When you run the main cron.php file, it calls task based upon their settings. ASAP runs 'as soon as possible'. Others have a 'cron' setup of their own. Check the two task mentioned previously.
In higher versions of Mooldle, there is a 'run now' link below some of the task.
Those, BTW, can also be run from command line ... one at a time .... /path/to/moodlecode/admin/tool/task/cli/
So set the cron job to run every minute. Run the cron job from the command line until it doesn't show anything (that means it's 'caught up'). And then gather info to respond to question above, please.
'spirit of sharing', Ken