I'd like to stick some instrumentation in some web pages and then if
my extension is loaded have the instrumented page call code in my
extension.

Right now I'm doing it as a Firebug extension and using xpcom to check
for my extension services. Is this the right approach? The xpcom code
is located in myext/components and a page can load the service even if
firebug and my extension haven't been loaded.

The extension aids in some very specific trouble shooting. If you
install it you'll have a need for it and understand the security
concerns involved.