Repository navigation
Fixes the installer ports-check needing two clicks to advance on an
upgrade: the old instance's processes were killed with only a flat
2-second wait, which wasn't always long enough for MySQL/Postgres to
release their listening sockets before the port-conflict check ran on
the very next "Next" click. It now actively polls the configured ports
(up to 8s) until they're actually free.
Also switches the hidden-launcher script to use WMI instead of
WScript.Shell.Run, avoiding some shell-level launch overhead.