Upload artifacts on execution timeout
Description
ZD: https://gitlab.zendesk.com/agent/tickets/83487
One of our customers is running into issues where a job is being killed due to job timeout:
ERROR: Job failed: execution took longer than 4h0m0s seconds
They would like to debug the timeout by investigating the artifacts, using [`artifacts:when`](https://docs.gitlab.com/ce/ci/yaml/#artifacts-when). But the artifacts aren't being uploaded because uploading artifacts should be uploaded within the timeout set in the project settings
### Steps to reproduce
- Have a job that runs for a time longer than project `build_timeout` (default 60min): https://docs.gitlab.com/ee/user/project/pipelines/settings.html#timeout
- Add `artifacts:when: on_failure` to your `.gitlab-ci.yml`
### Proposal
Upload the artifacts **after** the job is being killed by the `build_timeout`.
#### Use cases
To investigate jobs that are taking too long to complete.
### Feature checklist
Make sure these are completed before closing the issue,
with a link to the relevant commit.
- [ ] [Feature assurance](https://about.gitlab.com/handbook/product/#feature-assurance)
- [ ] Documentation
- [ ] Added to [features.yml](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/features.yml)