think this should be an or, instead of an and.  (ie, if either state or status is changing, proceed with the set_status operation)

Aside from this, the branch looks good to merge. Thanks!