For anything more complicated than one condition, the thing that has saved me most is a helper column rather than a cleverer formula.
Put a column at the far right that computes a plain true or false with whatever logic you like - overdue and unassigned and not archived, however many conditions, written normally with room to breathe. Then the conditional formatting rule is just =$Z2.
Why it is better than the clever version:
- You can see what it evaluates to for every row, which makes debugging trivial. Conditional formatting gives you no visibility at all; it either colours or it does not, and you are guessing.
- The logic is editable without going through the formatting dialog, which is a poor place to write anything long.
- Several rules can share it instead of each carrying its own copy of the condition, which is how these get out of sync.
Hide the column once it works.
One related trap since you have a status column: watch for trailing spaces and case. the string with a trailing space does not equal the one without, and this silently affects some rows and not others, which reads exactly like a formula problem. If some rows refuse to colour and look identical to ones that do, that is almost always it - the helper column makes it visible immediately.