Unable to link categories to custom post type using standard function

plugins_loaded will definitely be too soon as it is standard practice to use init to set up custom post types and taxonomies.

That being said, if init is not working for you it could well be that whoever is creating them is creating them either at a later init … or you are using the same init priority and your function is firing before theirs.

try changing you action call to

add_action('init', 'cptpages_register_taxonomy', 50);

Or even 99 … and see if that does the trick.

Otherwise, search their code to see how / when they are registering them and act accordingly.