Решено, я переписывал мейн и фактически у меня было две копии с небольшими отличиями. Суть в том, что я думал, что бас запускает всегда функцию Main, но в моем же случае он запускал по какой-то причине иную, устаревшую.
В данный момент реализовано очень топорно и тупо. Это изначально проверка запущенного процесса по порту через nc, далее парс пидов, если существуют, то завершаем и потом уже запуск по тому же порту идет...
Но приходится много процессов держать открытыми для этого. А завершение процесса делать по завершению потока - невозможно, описано в посте.