Can I create a form with a route like this /rooms/{node.alias}/booking?
Is this possible? path: 'booking/{url_alias}' or path:
  '{url_alias}/booking'


path: '{url_alias}/booking' paths can never start with a slug/placeholder. 

You'll have to use path: 'booking/{url_alias}'

In your form:

  /**
   * {@inheritdoc}
   */
  public function buildForm(array $form, FormStateInterface $form_state, $url_alias = NULL) {

    // Some DB query to check if $url_alias is the 2nd path of an alias.
    // In other words, check if "/rooms/$url_alias" exists.

    if ($db_query == false) { // if $url_alias is not the 2nd path of an alias.
       throw new \Symfony\Component\HttpKernel\Exception\NotFoundHttpException();
    }

    // Your Form code goes here

    return $form;
  }