I've been thinking of tackling this in the near future. A bunch of examples are broken because of this, so it would be nice to have working.
As part of this, the fallback painting code should be changed to use timers. Right now it uses the idle loop, but this isn't ideal: it forces us to either write a bunch of special-case code for painting or else rate-limit the idle loop to avoid painting to often (this is the current state).
I've opened #1186 as a separate issue for the fallback painting, because this issue has basically been resolved.
Most helpful comment
I've been thinking of tackling this in the near future. A bunch of examples are broken because of this, so it would be nice to have working.