Custom Waits Accuracy

I’m currently making a custom wait, and I’m comparing two ways of going at it.

Function 1:

function Wait(Time)
    local Start = os.clock()
    repeat
	RS.Stepped:Wait()
    until (os.clock() - Start) >= Time
    print(os.clock() - Start)
end)

Function 2:

function Wait(Time)
    local Timer = 0
    local N
    local Delta
    repeat
	N, Delta = RS.Stepped:Wait()
	Timer = Timer + Delta
    until Timer >= Time
    print(Timer)
end)

Function 2 seems to be more accurate, but I’m doubting whether or not it’d perform well with a lot of server lag because it doesn’t use os.clock(). Could someone clarify whether or not function 2 would work well? Or should I stick with function 1?
[Seperate Question: How would I make a custom wait that’s based off of frames, instead of seconds, as well as it having a custom FPS?]

This might help.