Что-то у меня не получилось воспроизвести описанную ошибку — обработчик выполняется лишь единожды, как и должен:
pastebin.com/EVLUsBhx
Вообще, весь пользовательский интерфейс обрабатывается исключительно в главном UI-потоке, т.е. интерфейс «не отвечает» пока выполняется любой listener. Может быть, ваша проблема где-то в другом месте? Попробуйте сделать «чистый» эксперимент.
Я тестировал только на Android 2.3.6 (на реальном девайсе). Может, в более поздних версиях появилась эта ошибка?