Unsetting a field before hook_form_alter
In case this helps anyone - the hidden node reference fields that I have been using were having their lists of selectable nodes generated by views. I ended up using hook_views_query_alter to stop the view query from being run. Here's the code I put into my custom module:

/**                                                                             
 * Implements hook_views_query_alter().                                         
 *                                                                              
 * Disables node reference views. This drammatically  
 * speeds up performance.                                                       
 */                                                                             
 function mymodule_views_query_alter(&amp;$view, &amp;$query) {                         
  if ($view-&gt;name == "my_view") {                                               
    $view-&gt;executed = TRUE;                                                 
  }                       
  if ($view-&gt;name == "my_view2") {                                               
    $view-&gt;executed = TRUE;                                                
  }
 }