Here are some ideas around which Keykos built some timing facilities.
There are two capabilities, w and n, to a wait object. When w is invoked there is no return until n is invoked, whereupon the invoker of w resumes, as well as that of n. n is prompt, w is not.
There is another sort of object waitC with an arrangement with some clock facility. The only call on this sort of object means “wait until time x, and then return.”.
For each of these sorts of object there was some small fixed number implemented in the kernel, and a source of external objects with the same behavior.