An OPC UA Client should not need to care about this.
The OPC UA Server should report a Bad_NodeIdUnknown status when the monitored node disappears and should automatically continue to report values when the node re-appears.
The Subscription and MonitoredItem can stay alive the whole time.
If the server does not behave like this, then have a look if the server supports ModelChangeEvents. A server can report ModelChangeEvents when nodes or references appear or disappear. A Client can subscribe for the ModelChangeEvent and receive the information which nodes have changed. As for any event Subscription, Events can be subscribed on any event propagating node, e.g. a parent object, a folder or on the "Server" node to receive all events.
If none of the previous ways work, then the cyclic read seems to be the only solution.