The interresting thing about where it freezes is that it doesn't freeze anywhere specific. Simply adding debug code changes where it freezes, which has made it impossible to determine the exact instruction where it freezes.
As far as I found out, when it comes out from suspend AppProcessMessages runs and somewhere while the messages are being handled it just freezes. I commented out parts of the code and it doesn't make any difference, then it just freezes further down. I bet it would even freeze in a NOP.
I think this is an operational system bug, because the same executable and the same TaskManager worked fine with Windows Mobile 5. IMHO WM 6 introduced this bug and the failure is in Microsoft Code.
Now, I don't know if we are doing something which triggers the WM bug ...