Since you've already tackled the idea of fairly generic messaging using a String + Variant data structure, I'd suggest you start looking into and studying the Queued Message Handler template. From the File menu, select "Create Project...", then pick the Queued Message Handler template.
The essential idea Is that every loop is the only consumer of its own message queue, but every loop can also act as a producer to send messages to other queues (and therefore to other loops). I've adopted the habit of usually restricting myself to one central "Main Brain" loop that coordinates all the other subservient loops. Each of the subservient loops talks back and forth only to the Main Brain. I find that this helps a lot with developing and debugging the individual subservient loops.
-Kevin P
ALERT! LabVIEW's subscription-only policy came to an end (finally!). Unfortunately, pricing favors the captured and committed over new adopters -- so tread carefully.