This thing of spending like an hour setting up a runner is one of the things I wanted to address with https://boxci.dev - A CI service I’ve built with a similar bring your own runners model but where “setting up the runner” consists of just installing a package, literally done in seconds :-) You should check it out.
To be fair, setting up a runner for Gitlab CI is very simple too. We self-host GitLab and we only have one runner on duty, but some projects have many stages that can be executed in parallel. I start a docker runner on my laptop before pushing new commits, which cuts the CI wait time by half.