WP_Query Group by Author and Order each group DESC

EDIT 2

My idea in edit one did not work, so I scrapped it. This edit I have sorted the returned array using a foreach loop to sort the posts according to date under the specific author, and the author on top has the newest posts.

The code below is tested and working, so you can try the following

$args = array ( 
 'category_name' => 'cat', 
);

$query = new WP_Query($args);

if ( $query->have_posts() ) {

    foreach ( $query->posts as $post_object ) {
        $new_array[$post_object->post_author][] = $post_object;
    }

    foreach ( $new_array as $k=>$v ) {
        echo get_the_author_meta( 'display_name', $k ) . '</br>';

        foreach ( $v as $post ) {
            setup_postdata( $post );
            the_title();
            echo '</br'>;
        }
        wp_reset_postdata();
    }
}

EDIT 1

From your comments, neither the method described in my original answer or

'orderby'   => 'date author';

SCRAPPING NOTICE

THIS EDIT HAS BEED SCRAPPED

ORIGINAL POST

I had a lapse in brain power in my comment, I have removed that. Your best possible way would be to try the new orderby parameter syntax (this new syntax came with WordPress 4.0).

You can try something like this (Untested)

'orderby'   => 'author date',

Remember to adjust your loop accordingly to remove your ordering inside the loop

Just a note, you need to be very careful with your use of pre_get_posts. As you have used it, it will alter all custom queries on all pages, front end and back end