А почему вы решили, что это костыли? Почему ваша программа должна просто висеть и не закрываться если она ничего не делает? Если не все потоки отработали - нужно дождаться потоков. Если программа что-то запускает по таймеру, то ей нужна какая-то команда на закрытие от пользователя => слушаем ввод. Все логично, что вам не хватает?
А abcd0x00 гоните в шею, пришел тут линукс рекламировать, а там тоже самое) Программы и там и там работают по одним принципам и я что-то не слышал, чтобы они умели просто висеть. В любом случае он бы сказал об этом, а не просто "оставил линукс здесь".