1. Нужно компилировать в режиме Any Processor а не в 32бит, тогда будут работать везде и всегда.
2. Все верно, результаты оптимизации хранить то нужно, плюс кеш растет.
3. Это проявляется не очень удачная работа сборщика мусора в NET 3.5. Он тормозит все потоки и чистит память. Т.е. периодически оптимизация прерывается и сборщик мусора собирает выделенную память. Чем больше памяти в системе, тем реже это происходит, но сами прерывания будут длительнее. В NET 4.0 с этим получше, плюс в самом TSLab периодически проводятся оптимизации, чтобы память реже выделялась и чаще переиспользовалась. Кстати, подобное поведение так же связано с пользовательскими индикаторами. Если они написаны бездумно и часто аллокируют память, особенно в циклах. То сборщику мусора, в конце концов придется долго и упорно работать.