Sounds like something could be done with a table where you have one record for each user that links via relationship to the main table where the user might be editing records. Script triggers could update a match field in that record to link it to the record they most recently edited--where fields in that main table records can record such data as the date/time the record was last modified and by whom.
There is also a get function, get ( RecordOpenState ) that will tell you if a record is currently open for editing or not.
I suppose get ( RecordOpenState ) somehow queries each record and discovers, "I CANNOT GET ANY INFO FROM THAT RECORD". Whereas I am requesting actual data (a username) from a record that it can't open.
I guess I can see why this is not available.
I would guess that there is a "flag" set on the record. Get ( RecordOpenState ) merely checks the status of that flag for the current record or, if used in an unstored calculation field, checks the flag of the current or related record of the table where the field is defined.
Thus if you have a "user" record for "John" and the OnRecordLoad trigger on say, an invoices layout, linked that record to John's user record each time he selects an invoice record, fields from invoices placed on a layout for the User table could show you which invoice is the current record on John's workstation and a calculation field defined in invoices could use this get function to tell you whether or not he currently has the record open for editing or not.
And a timestamp field in Invoices could tell you the date/time that he last modified the record and committed it.