it seems to me that when the phone wakes up, it doesn't scale fast enough to the wake up freq that's why the phone appears to hang and it's only after an indefinite period of button mashing, does the phone wake up normally and present the lock screen.
Maybe I should test my theory, like using SetCPU to set a higher max freq for the screen off profile, like a screenoff profile of MinMax, 480mhz/176mhz and see what happens...
I also tried not setting a ScreenOff profile at all just to test the default smartass governor. So I disabled SetCPU by unchecking the 'Set at Boot' option and the checkboxes in the Profiles tab and rebooted the phone. Looking at the Info tab, I realised it's a lot harder to see whether the phone remains at 176 or 352mhz when the screen is off because both numbers keep jumping when the screen is on, due to the smartass governor also using both 176 and 352mhz when the screen is on.
So in SetCPU, I forced the min freq to 480mhz and left the max freq at 614mhz, governor was smartass and I checked the 'Set at Boot' box. I didn't set a ScreenOff profile, so I'm guessing that when the screen is off, it will be the default smartass governor doing it's thing. I rebooted the phone and left it there for 10 mins. After 10 mins, I checked the Info tab and it showed me that the phone was in 480mhz, which is the expected behaviour of smartass, but the funny thing is that it never went down to 176mhz at all during this 10 mins. I'm pretty sure if i left it long enough like maybe a couple of hours, it will scale down and i will get wake up issues cos that's what happened previously before I installed SetCPU and forced ScreenOff profile to 352/352.
Of course with such short testing, nothing is conclusive but it does give me an impression that most of the time the phone is not fully sleeping, there must be something that's running in the background that doesn't allow the CPU to scale down to the min freq when the screen is off, regardless of what governor u set for ScreenOff. I even tried Conservative and that didn't force the CPU to go down to the min freq during ScreenOff either.
And those rare times that the phone does sleep at 100%, then what you set as the min freq will come into play, i.e. in my case if i set it to anything lower than 352mhz, the phone will have problems waking up occasionally. So if this theory is right, I could set it to 352/19mhz even and i won't have problems most of the time since my phone would rarely scale down to 19mhz , but if it did, i'm sure no amount of button mashing would wake it up without a batt pull.
So the next question is how the stock rom could sleep at 245mhz using perflock and yet not have any problems waking up. I'm not familiar with perflock but could we set it for a ScreenOff profile and yet use smartass or whatever governor we choose when the screen is on? After all, I'd rather lock the ScreenOff profile to 245mhz since it's more batt saving than running at 352mhz 99% of the time when the screen is off.