Turns out you can disable the top/bottom bar auto show and hide nonsense which changes the size of the viewport, often causing full screen elements to need to be recalculated.
Add "minimal-ui" to the viewport meta tag to remove the behavior.
<meta name="viewport" content="width=device-width, minimal-ui">
Thanks to ayr.com for showing me it’s even possible.