The current finished promise timing happens within the rendering lifecycle steps. This means that code that runs as a result of promise resolution happens after the visual frame that removes the view transition has been produced. This can cause a flicker at the end of the animation if script moves some styles around in an attempt to preserve visually similar state (e.g. https://vmpstr.github.io/htmldemos/vt/flicker.html) This change rectifies the situation by moving the ViewTransition clean up steps to run asynchronously after the lifecycle is completed. This ensures that visual frame produced at finished promise resolution still maintains the View Transition structure, allowing developers to avoid the flicker. More info: https://github.com/w3c/csswg-drafts/issues/12442