Lifecycle node improvements

At Elroy Air, we have converted our ground stack to exclusively use lifecycle nodes in order to make startup and shutdown more reliable and predictable. As part of that, we noticed that the lifecycle nodes seem incomplete, with only publishers having any lifecycle awareness.

To address that, I’ve created two PRs that add lifecycle subscribers and timers.

That leaves services and actions as the major remaining non-lifecycle components. Making lifecycle versions of them seems more complex, particularly action servers and even more so with the incoming deferable/cancelable lifecycle changes.

Would you use lifecycle services, or does it make more sense to handle any lifecycleness they need in specific concrete implementations?