IMHO this is the only way to select between modes that are defined in the sensor kernel driver. You need to restart ISP daemon with new parameters in Sensor0_Entry.cfg as you said.
However if you are only interested in lowering the video resolution dynamically without stopping live stream (scaling), you can do it with Gstreamer G2D GPU accelerator.
If input aspect ratio does not fit output aspect ratio, you can crop parts of the input image like in example bellow:
v4l2src device=/dev/video0 ! video/x-raw, width=3840,height=2160 ! videocrop name=video_crop ! imxvideoconvert_g2d ! video/x-raw, width=480, height=800 ! autovideosink
and dynamically setting videocrop parameters (left_crop, right_crop etc.).
Note that the actual cropping and downscaling is done inimxvideoconvert_g2d. "videocrop" gstreamer element will only insert necessary metadata.
Also note that this approach only works if you use Gstreamer in an application and not on command line.
I have done this sort of computing a lot. Let me know if u need further assistance.