Question: Is there an event that fires when a WCF service gets started or shut down? Hopefully, independent of whether it is self hosted or hosted in IIS?

Answer: 
Sure, the constructor of your object (especially if you are using a Singleton style). Please pardon the shameless self promotion, but I've written two articles on how to get started with a WCF (Net.Tcp) client/server system... The first is non-IIS (to which the service starts on your own terms), the latter is how to modify the first to be hosted in IIS to which my first sentense would apply:

1) [Client Server Programming with WCF](http://www.singingeels.com/Articles/Client_Server_Programming_with_WCF.aspx)

2) [Duplex WCF Services Hosted in IIS Using Net.Tcp](http://www.singingeels.com/Articles/Duplex_WCF_Services_Hosted_in_IIS_Using_NetTcp.aspx)
ServiceHost exposes quite a few events:

<http://msdn.microsoft.com/en-us/library/system.servicemodel.servicehost_events.aspx>

You could hook into these events by using a custom service behavior:

<http://msdn.microsoft.com/en-us/library/system.servicemodel.description.iservicebehavior.aspx>