So it looks like OnPreCull() is a Unity thing that is called before any camera determines what objects to draw in the frame.
Since I am only trying to call my bounds fixing function once for every zooming change, I am not catching the case of OnPreCull() being called afterwards and changing the extents again. It seems like the extents are being updated every frame because they are recalculated from OnPreCull(), is that right? I guess I will need to call my bounds fixing function every time that the extents change, so every frame. I will give that a try and see if it fixes my issue.
If you have any suggestions on how I might call my bounds fixing function less often let me know. Thanks.