I've been getting this too, exactly as you describe. It seems to me that the phone is still working, but the screen won't turn on. I can feel it respond to long presses, and it'll ring when there's an incoming call. Battery pull is the only recovery.
I also notice other times the notification bar doesn't want to be pulled down, and CPU usage is maxed out but I can't tell which process is doing it.
If tried a clean install, no luck. I've tried wiping /data too, still unstable. Even ran with ART for a bit, same story. So, based on previous posts, I'm going back to Apr 10th nightly to see if that is any better.
(Otherwise, it's a great ROM - been using it faithfully since before Christmas)
Yes, FasterFix (or FasterGPS) lets you use a closer NTP server so you can get a more accurate time (to the millisecond). This helps the phone determine its location more quickly. Not much use though without Internet access though.
AGPS (aka Quick GPS) is a stock feature that also helps getting first fix. When enabled, your phone will download the positions of all the satellites to make them quicker to locate. Again, this requires active data connection, but you only need to download this 'almanac' once per day.
So, try starting up your GPS while in range of some WiFi. Get 'GPS Status' app for additional diagnostics, and 'ClockSync' to keep you phone's clock accurate (requires root).
Speaking of WiFi, get the official 'BT WiFi' app. It will a) log you in automatically, and B) give your other networks higher priority.
An alternative is to use Zram instead, which creates a compressed swapfile in memory so you're not wearing out your SD card. Requires kernel support, eg Paul's or Ouch.
However, I find that when it gets full the phone becomes sluggish, with no way to clear out the swap. I don't think it works well with Android's memory management. Tweaking some kernel parameters might fix it.
I've had better mileage using Greenify to prevent rogue apps running in the background (eg Maps), using up previous memory that other apps need.
This technical blog post busts the myth of pm.sleep_mode, and states "adding this value to your build.prop will have no effect at all". There's nothing about the ril power collapse setting, but there's a comment that seems to suggest that it'll have no effect either. I'd guess that 0 was the default anyway.
Anyone got empirical evidence that these do have any effect?
As Winston Churchill once said: "don't believe anything you read on the Internet". ;)