Thanks yup. I'll take that as confirmation that I've at least fixed something. I've updated the OP to v3.10
Avisynth only calls what it needs when frame-serving, but it
initializes everything that isn't explicitly guarded with a condition. QTGMC contains a huge number of filters, many of which are not used unless you choose a particular setting. However, almost all of them were being initialized, which must have been using a great deal of memory - it was hard to tell because the avisynth cache uses a huge amount of memory anyway. Other scripters with conditional / optional processing should note
the example above.