Вы спастили код, который работает, но не спастили тот код, который собственно не работает.
Попробуйте сначала сделать базовый кейс без simple_thread: Объект класса, унаследованного от QThread, сигнал шлет из метода run(). QLabel.setText сигнал получает. Это все происходит в запущенном приложении (после app.exec_())
В принципе сигналы-слоты между потоками в Qt отлично работают.