Reorganize control flow in startX
Previously, control flow in case of timeout was very complicated:
- sigalrm_handler() in startX() raised an exception
- finally in startX() caught the exception and executed
- except in pyanaconda.display.do_startup_x11_actions() caught the exception
and executed too
That spread the handling over two different places.
This changes the control flow to make it obvious the caller of startX will
receive an exception. It is also easier to reason about the flow.
Related: rhbz#1918702
(cherry picked from commit 3f1d49fd7fe69ed8e1db09acfdff051838bc2b20)