Put the current thread to sleep for the time specified.
Note that this may return before the time specified has expired (i.e. the thread
may wake spuriously). This is why we return how much time is remaining, in the units specified.
time - the amount of time to sleep for.
unit - the unit time is measured in.
the amount of time left in the wait period (i.e. time-timeSlept).