Chris G Excellent, many thanks.
I see your dormant services have entries in the SDT, where their running_status is set to 1 ("not running"). They do not appear in the PAT and there are no component streams being broadcast. This is the same as BBC4 on 23.2E, so I can use that for testing.
Going back to the beginning of this thread, the "Parent disabled" concept seems like a good idea in that it allows to filter services where the service or network has been disabled. Where it goes wrong is that (1) services can become disabled without the user being aware, and (2) there is an undocumented requirement that a service must have active audio/video streams at the time of scanning to be included.
I hope to address issue (2) by using the service_type field from the SDT to distinguish A/V services from data. However Tvheadend has to support other input formats including ATSC and IPTV so it may not be possible.