Practically speaking, if your goal is to protect system resources, which is a practical concern removed from theoretical computer science, the halting problem isn't even the right concern. It's good to know about and all, but the problem is that programs which halt can be a nuisance. You don't care about the difference between "runs for 5 days and halts" and "runs forever".

Some programs run indefinitely by design, like services. Those may be acceptable in a system, but not CPU-intensive, long-running programs.

So you in fact have to reject some programs which halt, and accept some which don't.