As long as your subVI doesn't need to keep running after the main (user interface) VI has quit, there's no need at all to use VI Server, or to meddle with control references - just drop the subVI on the diagram of the main VI, outside any loop.
To stop the subVI (and start it, if you need to control this too), a notifier should work fine. Create the notifier on the main VI's diagram and wire it in to a terminal of the subVI. You can use the Wait on Notification timeout to control your loop timing, just as you suggested. You could generalise this approach to control the subVI in sophisticated ways - changing the time interval or other aspects of the task, for example - by having it read and interpret the data you send in the notifier (or a queue). Please tell me if I've misunderstood and this doesn't do what you want for some reason, but it seems like it should be all you need. Incidentally, I've never heard of notifiers 'not working with VI Server' and I'm sure I've successfully passed notifiers to VI's called by reference before, but I'm afraid I don't have the code any more to check this...