$query->set('posts_per_page', -1);
should be correct.
Sorting by 2 meta field, until quite recently was not really possible, or at best difficult. However, WP 4.2 introduced and improvement that will allow this. See this: https://make.wordpress.org/core/2015/03/30/query-improvements-in-wp-4-2-orderby-and-meta_query/