Custom post type template not loading from plugin

I think your first method isn’t working because it’s a theme method, not a plugin method. I could be entirely incorrect but I think the method of using single-custom_post_type.php only works for themes. (Again, I 100% could be wrong.)

However, this is what I use and it always works:

function wpse_post_type_templates( $template ) {
    if( is_singular( 'jdshs_jobs' ) ) {
        $template = plugin_dir_path( __DIR__ ) . 'templates/jdshs-job-template.php';
    }
    return $template;
}
add_filter( 'single_template', 'wpse_post_type_templates', 50, 1 );

You can name the template file whatever you like, even single-jdshs_job.php and essentially for every template, you just add it using the conditional checks. ie. is_archive( 'jdshs_jobs' ) etc.

tech