Using a local for this is not too bad, here it does not involve much data and I would assume race conditions are not a concern here. If the second loop is just waiting (using a wait function) it won't use any CPU time.
Linking the timing of the loops together by using a producer/consumer model is an option similar to using occurences, but will also enable data transfer between the loops if that's necessary.
The easiest way to get the two loops to run in separate threads would probably be to put them in separate VIs and set the VIs to run in different execution systems.