I notice that Function background_process_cron() in the module file has the following Do-loops:

  do {
    <...snip...>
  } while (!empty($handles));
  do {
    <...snip...>
  } while (!empty($results));
  do {
    <...snip...>
  } while (!empty($results));

The first Do-loop is fine as $handles is set within the loop. However, the second two loops are going to execute once only each, as $results is not set anywhere within this function. Possibly the second two loops should also be using $handles as their control test.