I think what you are describing is API for manual scheduling: you call sleep() to give up control to scheduler.
With tasks/futures you supposed to submit another task to pool which will wake up after certain time.
Both are "green threads" with manual scheduler (you need to make explicit call to give up control to scheduler) but different API.