@pavel the sensor doesn't support decent framerates on full resolution, that's why Megapixels sets it to 720p mode for the preview. There it can request the 30fps mode for the smooth preview (and it helps a lot with processing frames for the live view as well :)
If none of that works I guess it's the order of setting resolution and framerate that's the issue. I remember a while back there being a code that set the rate multiple times just to be sure :P