How do I force Twig output from my custom module, instead of from the theme?
Try adding the template array key to your theme hook:

function footer_block_theme($existing, $type, $theme, $path){
  return [
    'footer_menu' =&gt; [
      'variables' =&gt; [
        'address_title' =&gt; '',
        'address_content' =&gt; '',
      ],
      'template' =&gt; 'footer-menu',
    ],
  ];
}


Or try adding the block twig template suggestion as:

function footer_block_theme($existing, $type, $theme, $path){
  return [
    'footer_menu' =&gt; [
      'template' =&gt; 'footer-menu',
      'base hook' =&gt; 'block',
    ],
  ];
}