Task and motion planning describes different levels of abstraction in a domain. Motion planning is about lowlevel actions for example move the car forward for 1 meter, while task planning is about high level actions for example to overtake another car. Task planning is usually treated under the umbrella term PDDL which is a dedicated planning language for formalizing abstract tasks. Or to be more specific: PDDL creates a simulation in which actions can be executed. The reason why task and motion planning are analyzed separate is to reduce the state space. So called hierarchical planners are providing a much better sampling efficiency than a normal motion planner.
For example, a car should overtake another car. On the first look this can be planned with moving the car forward by a half meter. And the complete maneuver consists of many repetitions of this action. The result will be a large state space which produces a huge load for the planner. The better idea is to see the sequence as a separate high-level task and not try to use a low level planner for solving it.
All organizations which are focused on plan-based robotic control have experience with PDDL. Either with the original specification or with it's derivative like OWLS-Xplan, OPL and Golog.