Neither
while (1);
nor a recursive function calls are such great ideas to let your program "hang". The "while" idea does not work well as it sends your program in a very CPU intensive loop. That sometimes makes it difficult to debug other programs at the same time.
The recursive function call will allocate more and more space to the stack and finally end by using up a lot of memory until your address space for the stack is used up. Neither such a great idea.
Why don't you simply put your thread to sleep by
while (1)
Sleep (1000);
That will let Windows know that your thread does not want to execute for the next 1000 milliseconds and the CPU is free to do other things, like running a debugger.