How can I display conditional fields on page view?
You don't need conditional fields for this. The simplest way to do this IMO is just look at the values either in the Twig file, or create a new variable in a preprocess function to indicate what to do.

Example: 

{% if node.field_callout_icon or node.field_callout_text %}
  {% if node.field_callout_link_control.value == 'A single large button link' %}
    markup
  {% elseif ... %}
    markup
  {% endif %}
{% endif %}


Or you can preprocess the node and look at the field value there:

function mytheme_preprocess_node(&amp;$variables) {
  $node = $variables['elements']['#node'];

  $field_value = $node-&gt;get('field_name')-&gt;getValue();
  // .. do stuff with the field value
  $variables['my_new_flag'] = 'some value or bool';
}


Then in the node twig, if its a bool:

{% if my_new_flag %}


Or if you assigned a value:

{% if my_new_flag == '...' %}


One thing I would advise against is looking into the render array to read or look for values. Use the node object or preprocess the node to evaluate the values and create new variables if you need them. 

Here is a real example I am using which seems very similar to yours. I have a select field in a node type that indicates if the content is a service or a tool. Depending on which, I need to output the right SVG file next to the title. I am checking the value and creating a variable for the template:

mytheme.theme:

/**
 * Implements hook_preprocess_node().
 */
function mytheme_preprocess_node(&amp;$variables) {
  $node = $variables['elements']['#node'];

  if ($node-&gt;getType() == 'services') {
    $variables['icon_type'] = $node-&gt;get('field_service_or_tool')-&gt;value;
  }
}


The node type twig file:

{% if icon_type == 'service' %}
  {% include "@mytheme/svg/general/service.html.twig" %}
{% else %}
  {% include "@mytheme/svg/general/tool.html.twig" %}
{% endif %}


I could just check that in the twig as well, but it keeps the template cleaner / easier to read in my opinion.