Cron has been running for more than an hour and is most likely stuck, problem is persisting
There are too many factors that can stop the cron from being executed.

To see where exactly it breaks, open includes/module.inc and at the line 496 (function module_invoke_all()) add this:

foreach (module_implements($hook) as $module) {
  $function = $module .'_'. $hook;

  // This is the line you should add:
  if ($hook == 'cron') watchdog('cron debug', "Cron is processing module: $module");


Then run the cron from admin. The last module to be called is the one which breaks. Look further into the implementation of hook_cron() of that module and debug further.

This is inspired by this comment.

See this discussion.