WordPress multi-query not returning as expected

You’re missing the fact that get_posts() (or WP_Query) can take an array() of post types in a singular query. More info on Type Parameters in the Codex. The order will per default be the publishing date.

You can then specify it further by adding in stuff like your taxonomy_query, etc.

Keep in mind that you can orderby by meta_value as well as assigning multiple orderby arguments space separated:

'orderby' => 'meta_value post_date'

for example.