I would replace the range axis with one that dynamically computed its upper/lower range from the data and any auxiliary values whenever it is asked for upper/lower.
I vaguely recall doing this at one point to deal with Vision's classic chart not calling configureChart() after fresh data arrives. But I only found this:
The technique for delegating range requests to other data instead of constants would be similar to that dynamic range marker.