System Time (new Date())

I wonder if this is true. Have you tried to “fake” the time, as you described, and then look in Content Manager what it displays as time? I think new Date() retrieves a UTC date/time, but then the browser adjusts it to locale. Let me know.
If this does not work, you can always retrieve a new Date() from the backend when you are writing the row, like with an beforeInsert hook. But, that time would be identical to the system _createdDate.