Switching camera view on multiple cameras form python
The problem appears clearly when moving from any view to camera_view but it is also present when moving from camera_view to another (you can see that the view change from camera than hold still and then change at last) and it is caused by the ED_view3d_smooth_view_ex() ( source code ) function  and as you can see in the source code it is skipped if you are in render view , so for checking you can switch to render view and the code will run as expected 

here some code to make the transition clear (watch the view and console ) :

def main(context):
    print('******************************************************')
    bpy.ops.view3d.viewnumpad(type='CAMERA')
    bpy.ops.wm.redraw_timer(type='DRAW_WIN_SWAP', iterations = 1)
    print('sleep')
    time.sleep(8)
    print('wake')




( it may have something to do with timers )