Mitigating Task Interference in Multi-Task Learning via Explicit Task Routing with Non-Learnable Primitives