Help ordering Post loop by two meta values

If you’re using WordPress 4.2 or newer then you can do the following:

$args = array( 
    'post_type'       => 'events',
    'posts_per_page'  => 10,
    'meta_query'      => array(
        'relation'    => 'AND',
        'start_date_clause' => array(
            'key'     => 'start_date',
            'compare' => 'EXISTS',
        ),
        'ticket_status_order_clause' => array(
            'key'     => 'ticket_status_order',
            'compare' => 'EXISTS',
        ),
    ),
    'order_by' => array(
        'start_date_clause' => 'ASC',
        'ticket_status_order_clause' => 'ASC',
    )
);

You have to create a ticket_status_order because there’s no way to order by string from your available keys/values:

ASC: (I=Invite Only, S=Sold Out, Y=On Sale)
DESC: (Y=On Sale, S=Sold Out, I=Invite Only)

“Sold Out” always sit in the middle.

For more information about the query, take a look here:
Query improvements in WP 4.2: ‘orderby’ and ‘meta_query’