ArrayFormula влияет на getLastRow Да, это функция, она должна изменить LastRow, потому что вы выводите массив полностью до нижней части таблицы.
Простой исправить:
=arrayformula(array_constrain(IF(B4:B="","",(B4:B-A4:A)),max(IF(B4:B="",0,row(B4:B)))-row()+1,1))
То, что вы изначально делали: Вывод массива с в основном пробелами до самого конца таблицы
Что это за новая формула делать: Выводить только те данные, которые вам нужны, ограничивая размер массива последней строкой, содержащей данные.