bpy.app.handlers, causing crash?

OK, I’m trying to delete a scene once a render finishes. I had trouble finding a way to detect when the render finishes to continue with more code. I came across “bpy.app.handlers.render_complete” which seems to work ,but causes blender to crash when trying to delete a scene. I can delete objects, images, whatever else ,but scenes tend to crash. Any solutions?

    #Remove matcap worlds 
    for matcap_worlds in bpy.data.worlds:
        matcap_worlds = matcap_worlds.name   
        if matcap_worlds.startswith("Matcap World"):
            matcap_worlds_delete = bpy.data.worlds[matcap_worlds]
            bpy.data.worlds.remove(matcap_worlds_delete, do_unlink = True)
    #Remove matcap sphere 
    for matcap_sphere in bpy.data.objects:
        matcap_sphere = matcap_sphere.name   
        if matcap_sphere.startswith("Matcap Sphere"):
            matcap_sphere_delete = bpy.data.objects[matcap_sphere]
            bpy.data.objects.remove(matcap_sphere_delete, do_unlink = True)
    #Remove matcap plane 
    for matcap_plane in bpy.data.objects:
        matcap_plane = matcap_plane.name     
        if matcap_plane.startswith("Matcap Plane"):
            matcap_plane_delete = bpy.data.objects[matcap_plane]
            bpy.data.objects.remove(matcap_plane_delete, do_unlink = True)
    #Remove matcap camera 
    for matcap_camera in bpy.data.objects:
        matcap_camera = matcap_camera.name   
        if matcap_camera.startswith("Matcap Camera"):
            matcap_camera_delete = bpy.data.objects[matcap_camera]
            bpy.data.objects.remove(matcap_camera_delete, do_unlink = True)
    #Remove matcap environments     
    for images in bpy.data.images:
        images = images.name     
        if images.endswith(".matcaps_environment"):         
            images_delete = bpy.data.images[images]
            bpy.data.images.remove(images_delete, do_unlink = True)

    #Remove matcap generator scene
    matcap_generator_delete = bpy.data.scenes['Matcap Generator']
    bpy.data.scenes.remove(matcap_generator_delete, do_unlink=True)

    bpy.context.scene.matcap_name = ''
    bpy.context.scene.matcap_materials = ''