In WM_NCLBUTTONDOWN , (if called before the base.WndProc) you can force m.WParam to 1 (client area) in place of 2(title area). This will avoid the capture of the mouse by the desktop manager.
I do the same for WM_NCLBUTTONUP, and use a timer based on GetDoubleClickTime() to manage either click or double click...