Никогда не пользовался сторонними библиотеками для работы с потоками.
Обычно завершаю поток таким образом:
Код:
FThread.Terminate; //установили потоку флажок говорящий о том что неплохо бы завершиться
FThread.WaitFor; //подождали пока поток закончит все свои действия
FThread.Free; //вызвали деструктор потока
естественно, что в коде потока нужно переодически проверять значение свойств Terminated.
И всегда работало на ура, я даже не знал о существовании каких-либо библиотек для работы с потоками, потому что нужды не было в этом.