Seems like it does just what I'd expect:
currentTimeStamp: 0
serialLastWriteTimeStamp: 0
currentTimeStamp - serialLastWriteTimeStamp: 0
Do you not get zeros?
These happen almost intantaneously and read the same millis() millisecond:
currentTimeStamp = millis();
serialLastWriteTimeStamp = millis();
I'd swap their order and put a delay in between to see something other than zeros.