Chris
You can get a "stacked" appearance by using a Queued State Machine - a while loop with several to many cases. The cases appear to be stacked on top of each other but the execution is under control of the Queue.
For the Communications while loop you can turn that into a Daemon and use Queues to communicated with your main program.
End result cleaner more readable code
Visualize the Solution
CLA
LabVIEW, LabVIEW FPGA