Sounds like two status fields are the way to go. The status field in the clients table is not recording the same exact data as that found in the join table record. When a record in the join table is created it can look up (auto-enter option to copy over) the current value of the client status field and then the worker can change the join table record as needed.
The only complication will be if a client status can later be changed to another value.
You might also simply keep the two fields completely separate, assigning values of new, pending, cleared to the client status field and use values of <empty> and "unqualified" in the client_worker join table field. Note that if you add "unqualified" to your list of value for the client status, you are recording something quite different than when a work updates the status in the join table. The worker's entry indicates "this client is unqualified for me". The same value in the client table would indicate: "this client is not qualified for any worker."
Thanks for the reply Phil. Everything you mentioned is exactly right. I'll use the client record as a global starting point where the status is as stated: New, Pending, Cleared and Unqualified (not qualified for any worker). When that client contacts an individual worker I'll make a record in the join table for that specific relationship and track status through that record going forward.
Thanks for helping me think it through.