Job duration greater than its timeout value

Hi. So, according to the documentation:

When both a project timeout and a runner timeout are set, the lower value takes precedence.

However in my case, the job took 71 minutes before I cancelled it, even though its timeout is set to 20 minutes. It happened on an SaaS instance runner.

Problem to solve

How can I assure that the jobs in my CI/CD don’t take more time than the specified timeout?

Configuration

earthquakes:
<<: *dataload
stage: build-earthquakes
rules:
- if: ($CI_PIPELINE_SOURCE == "schedule" || $CI_PIPELINE_SOURCE == "manual") && $JOB_NAME == "earthquakes"
variables:
DOWNLOAD_CMD: "python nature/earthquakes.py"
RENDER_CMD: "sh pmd2html.sh nature/earthquakes.pmd"
timeout: 20 minutes