Now that I've kludged around all the new issues I've been looking at and taken a good look to see which changes I could remove, I'm left with the conclusion that not my code just changed in a way that my code was not compatible with and there are things that just need to be inexplicably different to get the right behavior. I hate that conclusion, but I think I've ruled out the other possibilities.