@awesomerobot I wonder, can we try out:
What we found to be the best solution in our case is to keep the modal fixed, but to stretch it to the edges of the window, hiding the rest of the content in the body with display: none;. This would remove the problem of the body height being higher than the viewport and there would be no background scrolling when focusing on the input.
The bug here is really brutal on ios and its been more than a month now and still no fix.
Besides hiding stuff behind modal more aggressively on mobile seems like a good idea anyway.