change your last modified by user to a calculation that is attached to the modified timestamp field and does nothing when a server account is performing an action.
_ts = auto enter modified timestamp field;
if ( user account = server ; your mod history timestamp field ; _ts)
Usually a point in time comes when an invoice is no longer subject to modification because it has been submitted to the customer. At that point, it is usually the case that a new invoice has to be created should a problem be encountered at that point. So one way to save that calculated value is to make it part of a script that changes a status field in the parent record--the Jobs record to which these items are linked. Record Level Access can then be used to prevent any future modification to this set of records. So you might not need to save any value until this point in the process is reached.
Another thing you can do is modify that update script that runs each night so that it only modifies data should the unstored calculation not match the stored value. You might consider setting up the script to log each time the update is needed in order to figure out what action got through your existing process.