Query Not working as expected

You aren’t preserving the paged query var in your query. You can accomplish this by making line 4:

$wp_query = new WP_Query($query . "&paged=" . $original->query_vars['paged']);

UPDATE: After the edit on the OP, the issue was that the paging variable, paged was in the query being sent to the function. But, there was a typo so that the page variable (which would have been false in this case) was actually being sent to the function.

Therefore, we corrected:

'query' => array(
  'post_type' => 'post',
  'paged' => get_query_var('page')
),

to

'query' => array(
  'post_type' => 'post',
  'paged' => get_query_var('paged')
),