Best Way to Remove WordPress Meta Box based on Post Status

I will suggest to check the $post object in PHP before adding meta box.
And add the meta box if status is draft or auto-draft.

Consider this code

function update_meta_boxes($current_post_type, $post) {
    $post_types = apply_filters('lsw_default_post_types', LSW_Organize_Drafts::$post_types);
    remove_meta_box( 'tagsdiv-lswdrafttype', $post_types, 'side' );
    if (isset($post->post_status) && ($post->post_status == 'draft' || $post->post_status == 'auto-draft')) {
        add_meta_box('lswdrafttype_custom', __('Draft Type', 'lsw_organize_drafts'), array('LSW_Organize_Drafts','render_meta_box'), $post_types, 'side', 'core');
    }

}
add_action( 'add_meta_boxes', 'update_meta_boxes', 10, 2);