Callback-ified beforeRender() works, and so does cancelRender.
async beforeClose and beforeRender, and their cancel operations work in tandem.