Since you already have found a way to get things working in your scenario you can keep using it if it fits your needs. Nevertheless, below I will answer your questions and provide some more information on the way the control works:
1) if there is a public property or a 'get' method to access the private object "_modalExtender"
No, there isn't. This is part of the internal control's functionality and for common tasks that use it there is a public method that wraps the functionality (e.g. set_modal()). Having the need to externally modify something from this layer is very rare.
2) every new radWindows has, as zindex value, the value of the last radWindow incremented
Yes, this is true for the RadWindows from the RadWindowManager's Windows collection. This is necessary for the proper functioning of the control, because setting an active RadWindow requires that you increase its z-index value, as this is the only way to bring an HTML element to the front. This is why the RadWindowManager tracks the z-index values it has assigned so far and opens the next one with a higher value. The same applies for the predefined dialogs as well, so if you open your first RadWindow from the manager you shouldn't have such an issue if you have configured the z-index properly.
To get ahead and answer the "how do I configure it properly" question - set the property to the manager, e.g.:
. . . . .
and not for the individual RadWindow. Setting it for the individual control means you always want this z-index and the manager cannot properly calculate the further values.
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed