Resolve exeName to an absolute path next to the running executable
(buildPath(dirName(thisExePath()), exeName)). When that path does not
exist but a .exe-suffixed sibling does, the suffixed path is returned (the
Windows / bare-name fallback). Separated from spawnSibling so the
path-resolution can be unit-tested without actually spawning a subprocess.
Resolve exeName to an absolute path next to the running executable (buildPath(dirName(thisExePath()), exeName)). When that path does not exist but a .exe-suffixed sibling does, the suffixed path is returned (the Windows / bare-name fallback). Separated from spawnSibling so the path-resolution can be unit-tested without actually spawning a subprocess.