Best hook for a function which adds shortcodes to the system?

If I’m following things correctly, I think the problem is that your shortcode callback echoes, rather than returns its content – and that you have it set up that way in order for the shortcode content to output outside of the post content.

If that’s the case, you’re taking the wrong approach.

Your shortcode callback must return, rather than echo, its output. By echoing its content, you’re experiencing the issues you’ve observed:

I have a plugin released, and one of my customers was reporting a
problem where the plugin was outputting ads in the header area of
their website…

Doing it thisway causes a conflich with my plugin (which outputs
adsense ads) and the google analytics in the header).

To use the shortcode outside of the post content, it must be executed via do_shortcode():

<?php echo do_shortcode( '[myshortcode]' ); ?>

How that do_shortcode() call gets added to the template in the correct location is entirely Theme-dependent. If the Theme provides an appropriate hook, then you can hook into it. If not, you may have to modify a template file via Child Theme.