Use the custom post type archive for taxonomies?

You can create taxonomy-cat-cpt.php, and inside it just use:

<?php get_template_part( 'archive-cpt' ); ?>

Then they’ll both use the same template.

Then inside archive-cpt.php, if you use the_archive_title() archive the_archive_description() it will display the appropriate title and description automatically based on whether you’re viewing the taxonomy or post type archive.

Regarding posts, as long as you’re using the main query (so just have_posts() and the_post() and no new WP_Query() nonsense), then the appropriate posts should be listed, as long as you’re using the correct links.

For anything else that needs to be different, you can check is_tax( 'cat-cpt' ) or is_post_type_archive( 'cpt' ) to conditionally hide or show elements for each one.