Ran into a similar problem with my agility script... With small obstacles that didn't have a lot of area on the screen, it didn't lag at all, but once I got to big gaps that had a lot of area, i basically completely froze.
i'd offer a possible recommendation (idk the kind of precision you need) of just highlighting the tiles upon which the object is located, something like this:
g.fill(GraphicUtilities.getModelArea(getBot(), ent.getGridX(), ent.getGridY(), ent.getZ(), ent.getModel()));
given an entity 'ent' and a graphics2d g
this is probably the simplest solution that i could give on the fly