fix(core): keep the exit code when core_exit.sh is downloaded on exit (#5192)
Downloading a missing core_exit.sh ran it from inside fn_fetch_file, which declares its own local exitcode for the curl result, so the exit code from before the download was lost and a failed command exited 0 the first time core_exit.sh was fetched. Download it first with fn_update_module, keep the real exitcode across that download, then load it as before.
Fixes #5191