Custom default filtering in the user admin panel disables the other sortable columns

First, use $query->query_vars and not $query->query.

Secondly, you should run this conditional check before overriding the corresponding query var:

empty( $_REQUEST['{VAR}'] ) || !isset($query->query_vars['{VAR}'])

where {VAR} corresponds to the query var’s name/key such as orderby.

So try this, which worked for me:

// Set default `orderby` to 'registered'.
if( empty( $_REQUEST['orderby'] ) || !isset($query->query_vars['orderby']) ) {
    $query->set('orderby', 'registered');
}

// Set default `order` to 'DESC'.
if( empty( $_REQUEST['order'] ) || !isset($query->query_vars['order']) ) {
    $query->set('order', 'DESC');
}

which you would use in place of:

if( !isset($query->query['orderby']) ) {
    $query->set('orderby', 'registered');
    $query->set('order', 'DESC');
}