Smarty Custom Variable / Token Array
Through further testing I found that if I FIRST include the {extrainfo.namearray} token (which simply prints 'array') and THEN run a loop through the contact array, it does in fact show all of the tokens!

In the case anyone else finds this useful, my final code:

{extrainfo.namearray} // hide this so not seen in email
  {foreach name=outer from=$contact key=k item=it} 
     {if $k == 'extrainfo.namearray' }
       {foreach name=mid from=$it item=inn} 
           {$inn}
       {/foreach} 
     {/if}
  {/foreach}  


I'm not sure why I have to include the custom array first before it will include it in the contact array so that I can properly loop through it - but alas it's a workaround that works!!!