You should be able to name and sort your meta query clauses like this:
$meta_query = array(
'relation' => 'OR',
'foo' => array(
'key' => 'expiring_date',
'value' => date('Ymd'),
'compare' => '>',
'type' => 'DATE'
),
'bar' => array(
'key' => 'expiring_date',
'compare' => 'NOT EXISTS'
),
'baz' => array(
'key' => 'expiring_date',
'value' => ''
),
);
$query->set( 'meta_query', $meta_query );
$query->set('meta_key', 'expiring_date');
$query->set('orderby', array(
'foo' => 'ASC',
'bar' => 'DESC',
'baz' => 'ASC',
'title' => 'DESC'
));
More information can be found in this introduction post.