Copied scene needs a user?
Use the operator
For the time being whilst using Scene.copy() produces a zero user scene, using the operator instead, does not
bpy.ops.scene.new(type='FULL_COPY')

A new scene created via newscene = scene.copy() does not pick up  the window using it (as a user) when context.window.scene = newscene nor does the one being unset lose a user.   I imagine this will be fixed sometime soon.