CP is not a subset of MILP. They are separate modeling/solving paradigms whose domains of application overlap. Both can solve for optimal solutions (in CP's case, by incorporating a constraint that says each solution must improve on the previous one) or stop with a feasible solution.
It's a bit deceptive to refer to "CP" as a single approach, the way MILP is. All MILP languages and solvers understand linear equality and inequality constraints and real, integer and binary variables. Some extend to SOS1 and SOS2 constraints, if-then constraints and quadratic cone constraints, but that's about it. CP languages and solvers vary more in terms of what constructs they understand. They all support integer and binary/logical variables, but some provide things like interval variables (typically representing a time interval) and others, I think, do not. They probably all have the "all different" constraint, but some support constraint types that others do not.
Some CP languages and solvers are specifically geared to scheduling problems. They allow the problem to be expressed more directly than a MILP model would. For instance, some have a constraint with a name something like "EndBeforeBegin" which is used to enforce a precedent constraint (one job must end before the next begins).
Whether you can solve a scheduling problem faster with CP or MILP is an empirical question, the answer to which depends on the specific elements of your problem, the specific CP and MILP solvers you use (and the model elements supported by whatever language or API you use), and of course your modeling skills.