I am not sure I understand the problem.
If you want to make sure only one process runs at a time, we can use a locking
mechanism like I do in one module:

Making sure we get the lock prevents a race condition, a problem that make
poormanscron.module currently unuseable (see link in code comment).

/**
* Implementation of hook_cron().
*/
function hook_cron() {
  // Check if we have another instance of cron running.
  if (variable_get('hook_cron_running', 0)) {
    return;
  }
  // hook_cron is not already running.
  // See if we can get the lock before another process does.
  // Algorithm found here: http://drupal.org/node/43511.
  $result = db_query("UPDATE {variable} SET value = 'i:1;' WHERE name =
'hook_cron_running' AND value = 'i:0;'");
  if (db_affected_rows() != 1) {
    // We didn't get the lock. Another process outran us.
    watchdog('hook_cron', 'This cron process was outraced.');
    return;
  }
  // Do stuff here...

  // then, at the end:
  // Unlock.
  variable_set('hook_cron_running', 0);
  return;
}

Wouldn't the second process be blocked until the first one completes, instead
of returning immediately? There is no equivalent to Oracle's NOWAIT in MySQL
as far as I recall.
--
2bits.com
http://2bits.com
Drupal development, customization and consulting.