One quick tip that I use when trying to figure out potential speed bottlenecks is to use console.time and console.timeEnd.
e.g. if I suspect that part of my code is slow, I do something like this:
console.time("🛠️ description of code snippet");
...code snippet that I suspect is slow...
console.timeEnd("🛠️ description of code snippet");
And making Google Sheets changes in batches tends to be faster than doing them individually.
Please look at the code changes I made in lines 79-94.
First, the code is building a "group" of ranges.
rangesToClear = [
getOffsetColumn(src, r, 4),
getOffsetColumn(src, r, 5),
getOffsetColumn(src, r, 7),
getOffsetColumn(src, r, 9),
getOffsetColumn(src, r, 10)
];
Then converting them to A1 notation
let rangesToClearA1Notation = rangesToClear.map(range => range.getA1Notation());
Then doing the clearing in one step
src.getRangeList(rangesToClearA1Notation).clearDataValidations().clearContent();
It's not instantaneous but does *feel* faster to me when I did some testing.