Self-hosted runners absolutely win on compute-heavy workloads. That 45→8min improvement is real and worth pursuing.
But "zero ops" isn't the only advantage. Managed runners handle OS patching, security updates, and capacity planning. Self-hosted means you own that. I've seen teams save money initially then spend it all fighting runner disk space issues, stale dependencies, and security vulnerabilities they didn't think about.
For CPU-intensive work, yeah, move it. But don't underestimate the hidden ops tax. Most teams should split it: Actions for CI, self-hosted for batch jobs that actually need the resources.