Freeze date capability

I am looking for a way to “freeze” or “lock” date columns once dates are entered (let’s say Start Date and/or End Date) to be treated as the original planned start and/or end dates of a task/project.
Any need to update any of these originally set dates will be made in other dates columns (for this matter board will have a second/third date column Modified Start/End Date) allowing by that representation of the difference between the planned vs. modified (or actual) start/end of task.
Tried several workarounds using automation, baseline capability but none support the expected outcome. The closest workaround to trace the original dates is using the activity log which I find rather unfriendly, becoming extremely annoying to unpractical when dealing with dozens and hundreds of tasks each with multiple activities in its life cycle.

Looking forward hearing your thoughts and feedback on this one.