Why are my AJAX forms submitted twice?
The problem you are noticing is caused from the fact that  us_register_form_submit() for Drupal is the form submission handler for the form returned from us_register_form() and, at the same time, you set us_register_form_submit() as AJAX callback.
That function will be called twice, when AJAX is enabled: first as AJAX callback; then, as form submission handler. 

Just change the code as this. (See the /* changed this */ comment.)

  $form['basic']['submit'] = array(
    '#type' =&gt; 'submit',
    '#value' =&gt; t('Submit'),
    '#ajax' =&gt; array(
      'callback' =&gt; 'us_register_ajax_callback' /* changed this */,
      'wrapper' =&gt; 'form-register-wrapper',
      'effect' =&gt; 'fade',
    )
  );


AJAX callbacks are not for validating a form, and they will never get called to validate a form, except when you set as AJAX callback a function already used as form validation handler. The purpose of an AJAX callback is reacting when a JavaScript event happens for a form field, and updating the form without returning to the browser a full page.