Introduce a separate thread that will kill clangd-index-server after 10 seconds regardless. This helps shut down the test if the server hangs and stderr.readline() does not contain inititalizatiton message. It prevents "necessary" waiting delay for the server warm-up and only introduces additional delay if the test fails.
It also makes use of subprocess.Popen.kill() which is a portable way of handling process shutdown and avoids using signals.