It is tests that can be parametrised, not any function.
What is needed here is two
test_does_not_throw[,_long_run]() functions (tests), as you had them initially, but with the body of the test factored out (in the same file) - e.g.
_run_does_not_throw(all, the, arguments, including, test, parametrisations).
For existing CI jobs,
test_does_not_throw_long_run() can be excluded in CI configuration explicitly.
A new CI job needs to be added to run this test only.
Another option is to have
test_does_not_throw_long_run() in a separate file after all, being essentially a test declaration and a call to function body. This way, the regular
integration CI job runs one file as currently, whereas a new CI job runs a different file - less muckery with existing jobs.
(This is essentially what you went for in the beginning, except with the test body factored out into a separate function.)