Use simple timeout logic instead of plain systemd is-system-running --wait
The 'is-system-running --wait' command of systemd will eventually wait forever until the job timeout of the CI kicks in. Since the job timeout is hard to set already I suggest using timeouts wherever suitable. I wrote a little timeout logic in one of my custom projects which I contribute as soon as I find the time.
My implementation uses a number of retries and seconds to wait between each attempt while in each attempt certain log messages and status infos are queried. If the system does not come up within one minute after the test starts the whole journal with all error messages is printed and the test exits as failed.