CPT: archive-cpt.php VS custom page template

The correct way is latter one – correctly configure your CPT registration to have post type archive and use appropriate template file for it.

However it gets tricker with your additional requirements.

Exposing post type archives to be used in menus is significantly requested/explored topic, but I don’t think it made it into core yet. There are mutiple solutions floating around, from quick search I have Post Type Archive Link plugin for it bookmarked.

Front page stuff is very convoluted. It’s probably doable but unlikely to be smooth and will probably take some pre_get_posts tinkering and possibly overriding template hierarchy logic around there.