Closed for Company Meetings: Between September 18 (5pm PDT) and September 22 (12pm PDT), Support and Sales requests will be delayed. Only time-sensitive issues will be addressed during that time. Thanks for your patience.
Interestingly there can be a lot more than six control_surfaces, but only six can be seen in the Preferences window. When setting a control_surface to none and then to some other surface not all previous surfaces are deleted, due to bad disconnect functions and Ableton Live not always calling the disconnect function.
I found iterating until I get an 'id 0' is a good solution. I have to iterate all surfaces anyway.