Inactive Operators - SM 9.33 and above

Hello Experts,

I'm hoping you can provide your thoughts here on approaches to try and/or approaches you have taken yourselves.  Not too long ago, I posted the below inquiry on handling obsolete Assignment Groups.

We have been leaning towards either modifying out-of-the-box deletion capabilites, or adding an "Active" boolean field to the Assignment Group form to capture the status of the group and control its visibility in selection lists.  However, "fcbcd" provided another solution to seriously consider now -- thank you fcbcd. :)  

There is more to the picture here in terms of what needs to be addressed to meet our needs, and this concerns obsolete Operators.  I've read through the various posts and it looks like some users out there are deleting Operators, while others are locking them to disable them.  We are trying to assess what would make the most sense here to incorporate that would not require a lot of effort to achieve, would keep the integrity of record data in tact and not be too complex for when it comes time for us to upgrade.

What we generally do with terminated Operators is the following:

1. Remove the Operator from Assignment Groups they are part of.

2. Lock the Operator.

3. Delete the Operator after some time if necessary to accommodate a new Operator.*

The above is generally OK, however, the challenges we face are:  a) *IDs are sometimes re-used in the company after a certain period of time which make up the "Login Name" of our Operator records so it is possible that a new employee could potentially have the same Login Name value as a terminated Operator; and b) Some modules have re-open capabilities tailored for tickets and tasks -- reopens are not something frequently done, but they can and do happen from time-to-time for very minor updates and then closed out relatively quickly again; and c) We have to maintain the integrity of the data in its original state on reopens for reporting purposes.

I believe most modules check for a valid Assignment Group and Assignee throughout the life of tickets / tasks based on out-of-the-box validation, so altering the rules to not check against the Assignment Group and Assignee field may be necessary here unless someone has other ideas? 

But how can the obsolete Operators be effectively handled in this case?  If we delete them, I know any tickets and tasks containing the obsolete Operators will remain intact with data, but the "Assignee" field displays the Login Name value from the Assignee's Operator record so it's just the ID showing and no name.  So if the Operator is deleted and a new employee gets assigned the same ID and a new Operator record with this same Login Name, will those old tickets/tasks still reference the old Operator or the new one now based on system design?  Should we perhaps be adding the "Full Name" of the Operator to tickets and tasks for clarity?

Is deletion of Operators safe overall?  There is no "Active" field for Operators like there is for Contacts.

Any ideas or has anyone gone through anything similar?  (The reopens and re-using of IDs are definitely consideration points for us!)

Thank you for your help.