Are you using some custom script to going to S3/5 (suspend/hibernate)? or are you just plainly using the kernel exposed interface to suspend directly (there are two "suspend" interfaces one under /proc (legacy) and a newer one under /sys)?
AFAIK, the kernel should NOT change runlevels when resuming from suspend/hibernation, but if you are using some custom script (there are several floating around) it could be that it is changing your runlevel... if that's the case maybe you should post it here... otherwize, I'm as lost as you are