Why my first tab is missing for local menu tasks defined by hook_menu()?
You need 3 menu items and 2 view pages. The parent menu and the default menu will share some configuration. 

  $items['node/%node/ecg-outcomes/add-new-user'] = array(
    'title' =&gt; 'Add New User',
    'page callback' =&gt; 'SOME CALLBACK',
    'page arguments' =&gt; array(1),
    'access arguments' =&gt; array(1),
    'type' =&gt; MENU_LOCAL_TASK,
    'weight' =&gt; -9,
  );
  $items['node/%node/ecg-outcomes/add-bulk-ghost'] = array(
    'title' =&gt; 'Add bulk',
    'page callback' =&gt; 'SOME CALLBACK',
    'access arguments' =&gt; array(1),
    'page arguments' =&gt; array(1),
    'type' =&gt; MENU_LOCAL_TASK ,
    'weight' =&gt; -8,
  );
  $items['node/%node/ecg-outcomes/registration-report'] = array(
    'title' =&gt; 'Registration Report',
    'page callback' =&gt; 'SOME CALLBACK',
    'access arguments' =&gt; array(1),
    'page arguments' =&gt; array(1),
    'type' =&gt; MENU_LOCAL_TASK ,
    'weight' =&gt; -7,
  );

  return $items;


As the outcome-viewer is set up as a view and you want it as the default menu tab, you need to set up two almost identical pages in your view as follows:

View Page 1:

Path: node/%/ecg-outcomes
Menu: Type : Menu tab, Title : Outcomes, weight : 50


View Page 2:

Path: node/%/ecg-outcomes/outcomes-viewer
Menu: Type : Default menu tab, Title : Outcomes Viewer, weight : -10 


METHOD 2
I think it can also be done with 4 menu items and 1 view page, in which case you only define view page 1, and include this menu item:

$items['node/%node/ecg-outcomes/outcomes-viewer'] = array(
    'title' =&gt; 'Add New User', // NO page callback and access callback necessary
    'type' =&gt; MENU_LOCAL_TASK,
    'weight' =&gt; -9,
);