setTimeout instead of tight UI-blocking loop