Are delays efficient way to bind actions to time frames?

Timer is probably the thing you are looking for. It can be looped, paused its elapsed time can be stored in separate variable.