1) Yes, each session needs to have a unique name. You would probably get an error if you tried to create one with the same name as an existing session.
2) Yes, and maybe no. It would make it the current session, however, if timing works out that another session hits a breakpoint just after you attach, the other session which hit the breakpoint could assume the role of current.
3) Yes, you could use that function, as long as you look up the session ID first.
4) yes
5) The current session is the one that is going to show in the all the debug tool windows (call stack, locals, etc).
6) yes
A final word of warning, don't send commands like "step" or "continue" or "break" manually. Doing that will get SlickEdit's idea of the debuggee state out of sync with its actual state.