Per Page Permalink Structure for Page Post Type

Is your Blog page the one that’s set in the back end at Settings > Reading > Posts page? If so, try checking for that in your first function:

/* Add .htm extension to Page URL Links */
add_action('init', 'htm_page_permalink', -1);
function htm_page_permalink() {
    global $post;
    if( get_option( 'page_for_posts' ) == $post->ID ) {
         // don't add .htm to this page
         return;
    }
    global $wp_rewrite;
    if ( !strpos($wp_rewrite->get_page_permastruct(), '.htm')){
        $wp_rewrite->page_structure = $wp_rewrite->page_structure . '.htm';
    }
}

The Option Reference pointed me at page_for_posts.