In such cases, it usually helps to use the '/ erase' settings and your "occluders" smartly / efficiently. As an example, consider the two attached scripts.
The "erase" setting is entirely out of the picture in our case since a stimulus will be replaced with another stimulus in any instance, rather than with a blank area. Setting "erase" to true will yield flicker in such cases, hence we must rely on blank shapes.
Well, then the only practical help I can offer is to assist you in optimizing your script's setup, i.e. finding ways to keep the number of required occluders / blank shapes as low as possible. Let me know and I'll be here to help.
the script is already done. I've decided to go with a set of small blank shapes and calculate their positions to occlude an arbitrarily sized area. Works well.