Custom executor jobs are not using exit code from user script on failure
Jobs running in a custom executor don't bubble up the correct exit code to GitLab. This breaks functionality such as allow_failure:exit_codes, where you'd expect to have access to the exit code returned by a script.
See sample job here. The user script explicitly exits with error 99, but the job mentions exit code 1 (BUILD_FAILURE_EXIT_CODE).
An example where this is limiting us is #27474 (closed). Making the build fail on timeouts is made difficult due to the fact that a timeout causes the build to fail with BUILD_FAILURE_EXIT_CODE, so it's impossible to distinguish it from a test failure.
We'd need to find a way to pass the correct exit code from the Windows job to ExitCode in command.waitForCommand, although this would certainly be a breaking change.