I don't think you understand the distinction that "a constrained set" brings to the discussion.
Of course the halting or not halting of some programs is decidable. Exactly the same way that the travelling salesman problem is boring for some cases.
But the halting problem is intractable for single instances of programs. A single short program that halts on the first counterexample to the Goldbach conjecture is currently beyond mathematics to decide if it halts. It is possible (although unlikely) that it is beyond the capabilities of ZFC to decide if it halts. It's also beyond the current capabilities of mathematics to tell if it's intractable or not.
NP, on the other hand, is trivial for *any* constrained set of problems. Given an oracle, you can write a program that solves any instance and prove it correct. Given sufficient time and computing resources, an oracle for any constrained set of NP problems is trivial by exhaustive search. The haltingness of the oracle to solve any instance of an NP problem is known. The search space is finite so the maximum run time is computable, and so the program halts.
There is a known 600 state Turing machine starting with a blank tape (you could reasonably type it out by hand) whose halting behaviour is provably undecidable in ZFC (assuming ZFC is consistent)