How do I add a custom html.node--.html.twig based on content-type?
You can use hook_theme_suggestions_HOOK_alter() to add another suggestion, something like:

function THEME_theme_suggestions_html_alter(&amp;$suggestions, $variables) {
    // Check it's a node page.
    if (($node = \Drupal::routeMatch()-&gt;getParameter('node')) &amp;&amp; $node instanceof \Drupal\node\NodeInterface) {
        // Insert as second to last so the more specific template by ID still works.
        array_splice($suggestions, count($suggestions) - 1, 0, 'html__node__' . $node-&gt;getType());
    }
}