yeah this is an "enhancement" we made, whereby InstanceState removes
circular references from itself when its host object is garbage
collected, thereby taking the load off of gc (and it does). So in
this case, asynchronous gc is occurring right as InstanceState is
doing expire_attributes on itself, and the dict is getting swiped.
We had this issue and did a None check, but that's obviously not
enough since...well its asynchronous. So r5283 turns "state.dict"
into an attribute that will always spit out a dictionary if the "real"
one was removed, and its looking like rc4 will be sooner rather than
later as we are hitting a few glitches like this.