Alright, I've tried a few more things (still no solution) but wanted to throw them out there to help eliminate redundancy.
As mentioned previously, D2G does not have a gestures .so file and the sensor hardware is different between the D2G and the D2.
First problem, what are gestures. As far as I can tell, these are gestures related to the sensors. In addition to having a gestures .so file, D2 and DX have a folder in /system/etc called contextawareness, this folder contains an algorithm.xml file that discusses gestures, things like "faceup, facedown, tap, doubletap, still, walk, run, jump." These "gestures" would seemingly allow, for example, the phone to detect that it is facedown and silence the ringtone (like some other phones "etiquette" mode). I assume the D2G has this same kind of functionality, but it must be implemented differently.
The D2G sensor .so file, references "gesture", while the D2 does not. This leads me to believe that maybe, on the D2G, gestures are handled in the one sensor.so file rather than in two separate files.
Additional info...in the D2 services.jar in com/motorola/android/sensor there are gestures.smali files, the D2G does not have these.
So here is my hypothesis:
When the phone goes to sleep, a frameworks file (maybe services.jar) or a lib file (maybe libandroid_runtime.so or libandroid_servers.so) references this non-existent gestures .so file and causes a crash. With the sensors disabled, the phone thinks they dont exist at all, and somehow decides not to search for the gestures.
So what solutions have I attempted.
1. Under the assumption that the D2G sensors .so contains the gesture functionality, I created a symlink from gestures.droid2we.so to sensors.droid2we.so. That way, when the OS calls gestures, it gets sent to sensors...that was a no go.
2. I hex edited the D2 sensors and gestures files to reference the proper /dev mount points for the D2G hardware...also a no go. Not entirely sure hex editing strings would even tell the binary to do anything different.
3. I reverted to a D2 build.prop, sensor and gesture files, and created symlinks in /dev to point the sensors D2 calls to the right D2G sensors. For example, the D2G accelerometer is /dev/kxtf9 while the D2 is /dev/lis331dlh I created a symlink so that when lis331dlh is called by the D2 sensor file, it points to kxtf9 instead....this also did not work.
I wish I had some "good news," but for now, all I've got is an "I'm still working on it"