How do I use a plugin to swap out the template file for a custom post type?

After trying a whole bunch of filter possibilities, I found one that worked.

add_filter( 'single_template', array($this,'page_template') );

Which got my function to be called. However, I also needed to make some more changes (not least of which taking out the die line). This was, finally, what worked:

public function page_template( $page_template ) {
    global $post;
    if ( 'my_lovely_post_type' === $post->post_type ) {
        $page_template = BUSINESS_PAGE_PLUGIN_DIR . 'templates/business-page.php';
    }
    return $page_template;
}