Dynamic assign a custom template to custom post type posts

locate_template search template only in themes then to use a file outside themes, you can use the filter template_include like that

add_filter("template_include", function ($template) {


    $post = get_queried_object();

    if (    is_single()
        &&  ("features" === $post->post_type)
    ) {
        // absolute path to the template file
        $template = __DIR__ . "/../../template/my_features_template.php";
    }


    return $template;

});