- Add destroyed flag to SkiaRenderer.destroy() to prevent double-free - Check destroyed flag in renderNow() to skip rendering after unmount (loadFonts promise could resolve after component unmounts)