"Can't wait for some answers to your questions!"
My advice: Don't hold your breath! I'm not sure why nobody seems to have any thoughts. All I really need is a way to send a user preferences file from their iPhone to their hub. The hub could then run my app 'autonomously' (no interface needed).
Here are my understandings to add to yours.
"a) only an Apple TV or an iPad can function as a hub that monitors and controls Home devices on its network;"
Agreed, at least as far as HomeKit is concerned. The device manufacturer can provide a cloud server that enables out-of-home-network control of their devices. As far as I can tell, a HomeKit developer has no access to this capability. Users are constrained to using only the apps that came with their devices if they want out-of-home access without an AppleTV or iPad hub.
"b) access to the "Home service" running on the hub is possible only through an iOS client Home app (and Siri); "
Well I'm not entirely sure what you're saying. My custom app is able to remotely access and control the HomeKit devices in my home because I have an AppleTV. My beta testers don't have AppleTVs and cannot access their devices with my app once they leave their home network. They CAN get control through the supplier's provided app. It's very frustrating to me as a developer that I cannot also accomplish this.
"c) it is generally not possible to run a backround Home app that periodically communicates with Home devices;"
Correct, a phone app cannot do HomeKit chores while in the background. I don't really understand how HomeKit on a hub device works but I suppose it must be able to act in the background?
"d) some device data cannot be programmatically accessed (e.g., you may not be allowed to read data from your temperature sensor even if you can set temperature-based triggers)."
I think I agree. My thermostat has a motion detector and many users were hoping to access that sensor, but could not until the manufacturer enabled that with a firmware update. I haven't had any personal experience with this while working on my app.