So trying to distill it down is the weird part.  Essentially when we got a reference, the cached option sets that gets loaded in the hook_entity_update function includes the changes made here, and therefore it doesn't look as if anything has changed.  As a result, it doesn't bother to try to update the option sets because it sees no change.