Why is this?
According to documentation this should not happen. Refer to this answer.
Is it possible to process historical data with parallel DAG Runs, with either catchup or backfill, and prevent certain tasks in the DAG from executing in parallel?
You would benefit from the pools. Pools allow you to control parallelism on tasks of your choice.
It is referred in this answer as well.
P.S. Would have suggested in comments but I can't.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…