On Ubuntu or Debian machines, if session.save_path is not set, then session files are saved in `/var/lib/php5` by default.

If you check the hhvm logs in `/var/log/hhvm/error.log` there is an error

`\nFatal error: Failed to initialize storage module: user (path: /var/lib/php5) in /var/www/html/commerce-demo/includes/session.inc on line 287`

Drupal/PHP fails to create a session in the `drupal_session_start()` function because the default location to store the session files `/var/lib/php5` does not exist or is not known within our setup with hhvm.

In my Drupal settings.php file I added to the bottom

    ini_set("session.save_path", "");

This resets the path to `""` (an empty string), by default this evaluates to the temp folder of the system. 
This helped me: http://stackoverflow.com/questions/4927850/location-for-session-files-in-apache-php

To find the current session save path, you can use `session_save_path()` (Get and/or set the current session save path).

Why drupal failed to create only the sessions related to the checkout page is not clear to me, but now it works ;)