How to add query args to links to CPT admin submenu

From your question:

I’ve tried it both with and without the esc_url wrapper, but either
way, it ends up moving the existing page query arg to the end, and
prepending it with #038; instead of the ampersand.

And from your answer:

The root cause was determined to be that menu_page_url runs through
esc_url even when display is set to false

So yes, that’s correct, and you could alternatively manually construct the URL like so: admin_url( 'edit.php?post_type=cwr_ticket_page&page=cwr-tickets' ).

But as for this:

how to (properly / the WordPress way) construct this CPT admin submenu URL for the links

Since you’re linking to the same page, then just use add_query_arg( $args ):

$link = '<a href="' . esc_url( add_query_arg( $args ) ) . '">View</a>';

Because add_query_arg() will default to using the current URL.