contact form ajax empty response error message

jQuery AJAX will trigger an error event not only when it receives an HTTP status code indicating a problem with the request, but also if jQuery fails to parse the response body. Since you’re using die() without sending any response body, it’s likely that jQuery is choking on the “empty” response.

Using wp_send_json_success() instead of die() should alleviate the issue.

  // ...
  $success = wp_mail($to2, $subject2, $message2, $headers2);

  if( $success )
    wp_send_json_success( null, 200 );
  else
    wp_send_json_error( array( 'message' => 'We\'re sorry, your message could not be sent at this time. Please contact an administrator' ), 500 );
}

Also consider implementing check_ajax_referer() and using sanitization functions to increase the security of your form.