When you saved the LLB it seems that you have used "Application Distribution" which indeed removes the block diagrams by default. If you use "Development Distribution" the block diagram will be included and all VIs from vi.lib will be excluded. I'v got some problems since the Rendezvous VIs are in the LLB but the lsb file is missing there.
We often use a multi threaded software architecture. Dependend from the developer we use two methods stopping all the threads.
One is the same you do destroying the synchronisation object and checking the error cluster.
The other one uses named queues. There is one thread responsible for starting and stopping the application. It sends a "Stop" message to all the other threads and they are able to send a "Done" message back and then the application exits.
The first way has the problem that the VI destroying the synchronisation object has no chance to know when the other VIs are really ready. If they have to do some cleanup like writting and closing files, stopping DAQ task ... they maybe not be able to do it. Think that your main VI will have a Exit LabVIEW function behind the Destroy Rendezvous VI your application is gone and no cleanup is possible.
Waldemar
Using 7.1.1, 8.5.1, 8.6.1, 2009 on XP and RT
Don't forget to give Kudos to good answers and/or questions