This is one of my biggest wishes for basic UI correctness that I have no hope of ever happening. I woke up to the scope of this problem when I had enough of Android changing the order of clickable notifications in the windowshade. Of all of the things to try to present predictably and logically, this was one of the most important. It seems to me that it would be harder to let notifications rearrange themselves than not. And they didn't care.
This isn't even a new problem, or unique to mobile or dynamic web apps. Ever get an OS dialog box with hotkeys pop up while you're typing and you hit a key that responds to the popup and have no idea what you did? Remember someone sending you an instant message that steals your focus while typing, and you ended up sending them what you were typing?
Things should not move/change/appear AND be interactable at roughly the same time. When things move, they should become unclickable for a bit. When something is made clickable, all efforts should me made not to have it move or change. Browsers and some OS interfaces already do this with the "OK/Save/Run" button not being clickable until after a delay. But it needs to go further. There needs to be a screen flash and an audio cue when this happens so that you know it happened if you're not looking directly at the screen. Motherboard speakers should still be standard, so they can beep even if you have your audio muted.
If you must have both dynamic behavior and interactivity, then when you interact with something that recently changed, you should enter a disambiguation mode to confirm exactly what you intended to do, with buttons that are only active after a delay, and these elements should not move or change other than that.
Unfortunately I think the vast majority of people would see this kind of change as an unacceptable frustration. And the producers of the interface don't seem to care. Look at what happened when Android removed the ability to set ring and notification volume separately. I'm pretty sure they like it this way. Even accidental engagement is engagement for their metrics. It's why youtube rushes to put up the "play next video" button as soon as your original video is done. Or almost done, it feels like sometimes. To catch people who try to pause the video before it ends.