First thing you need to know: DLL's have no sessions. You should better talk about Assemblies and class libraries, as "DLL" in .NET is just "extension", a part of file name, no more; it can be anything, you can even use .EXE file as a library: reference it, load it, etc.
The scope and life time of any objects of .NET class library is totally defined by the process where the library is loaded, more exactly, by the Application Domain, See
System.AppDomain
,
http://msdn.microsoft.com/en-us/library/system.appdomain.aspx[
^].
Keeping it in mind, I trust you can figure out your remaining questions by yourself.
Good luck,
—SA