Complex WP_Query order request: DESC by day, but then ASC by time

You’re not using query_vars quite right – this filter is for whitelisting “public” query vars, not actually setting their values. It’s also called rather early (wp::parse_request), so any conditional tags like is_tax() will always be false at this stage.

Use the pre_get_posts action for overriding the default query. Having said that, you need a custom ORDER BY clause. Use the posts_orderby filter:

function wpse_179686_posts_orderby( $orderby, $wp_query ) {
    if ( $wp_query->is_main_query() && $wp_query->is_tax( array( 'series', 'speakers', 'topics', 'venues' ) ) )
        $orderby = 'DATE( post_date ) DESC, TIME( post_date ) ASC';

    return $orderby;
}

add_filter( 'posts_orderby', 'wpse_179686_posts_orderby', 10, 2 );