What about if whenever `render_context` was called it would check whether any of the other contexts have been dropped, then do the appropriate cleanups?