Is there a way to get ONE random value as seed for Cyles per render?
Instead of using a driver, use that Python snippet to set the value in the render_pre application handler. This should stop it continuously restarting the viewport render.