you could try @colormode uyvy on your jit.movie (simply adding that attribute to the jit.movie box is all you need to do, no other patch changes are required).
you should also try some different codecs. the avf engine has a super fast h264 hardware decoder, so that might be a good codec to try, especially if you aren't doing a lot of random seeking or reverse playback. otherwise try Prores 422.
you should also make sure your movie dimensions are no bigger than they need to be for your final output size
it might be worth trying the viddll engine, especially if you are running in 64 bit and the video clips are small enough to load into RAM. adjust the jit.movie @engine viddll @cache_size attribute to reflect the memory you have available (the value is in gigabytes).
another alternative (especially if the clips are too large to fit into memory) is exporting all the clips to the Hap codec, and using the jit.gl.hap external for playback (32 bit only).
it looks like the matrix processing for your gradient is only triggered at initialization, so that should be fine, but you may want to remove that part of the patch and see if there's optimizations to be found there.
please let us know if any of this helps.