Having a field output custom markup when empty
This is what I eventually did to get it to work.

function MY_MODULE_entity_display_build_alter(&amp;$build, $context) {
  $view_mode = $context['view_mode'];
  $object = $context['entity'];
  if (empty($build['field_machine_name']['#field_type'])) {
    $field = 'field_machine_name';
    $build['field_machine_name'] = global_events_faux_element($build, $field, $view_mode, $object);
  }
}

function MY_MODULE_faux_element($build, $field, $view_mode, $object) {
  $element = array(
    '#theme' =&gt; "field",
    '#title' =&gt; "Field Name Here",
    '#label_display' =&gt; "hidden",
    '#view_mode' =&gt; $view_mode,
    '#language' =&gt; "en",
    '#field_name' =&gt; $field,
    '#field_type' =&gt; "text_long",
    '#field_translatable' =&gt; FALSE,
    '#entity_type' =&gt; "node",
    '#bundle' =&gt; "bundle_name",
    '#formatter' =&gt; "smart_trim",
    '#is_multiple' =&gt; FALSE,
    '#object' =&gt; $object,
    '0' =&gt; array(
      '#markup' =&gt; "&amp;NoBreak;",
    ),
    '#weight' =&gt; 2,
  );
  return $element;
}