Executor: switch parser from marshmallow to pydantic, then upgrade to v2
Pydantic reduces the amount of parsing boilerplate while still providing the flexibility to fix up the parsing at the field's or at the model's level.
This puts job parsing more in line with every other parser in this project, while also making it easier to add new features and reducing the line count and the maintenance burden.