I think the problem is you are passing the WP_User_Query object, not the results of the query. Try to change:
$fields = array(
array(
'id' => $prefix . 'user_sub',
'name' => 'Subscriber User',
'type' => 'select',
'use_ajax' => false,
'options' => $user_query, // this is where you populate the select in metabox
),
);
To:
$users_ids = array();
if ( !empty( $user_query->results )){
foreach($user_query->results as $user){
$users_ids[] = $user->ID;
}
}
$fields = array(
array(
'id' => $prefix . 'user_sub',
'name' => 'Subscriber User',
'type' => 'select',
'use_ajax' => false,
'options' => $users_ids, // this is where you populate the select in metabox
),
);