[Run loop run] останавливается на этом - он никогда не проходит дальше той строки кода, он просто «зацикливается»
Обычно вам не нужно создавать собственный цикл выполнения.
Если вы хотите установить таймер в отдельном потоке, просто используйте таймер в главном потоке, а целевой метод выполняет свою работу в отдельном потоке