We could probably just keep the seconds from midnight a 
checkpoint: INTEGER

and each time
l_seconds := create {TIME}.make_now.seconds - checkpoint
if l_seconds < 0 then -- this means last request was last day .. so
  l_seconds := l_seconds - (24 * 60 * 60)
end
then use "l_seconds > timeout_in_seconds" in until clause

The only benefit is to keep only integer, and not a full object, this may reduce memory usage.
Also using TIME, instead of DATE_TIME, since we don't really care about DATE .. I guess we could have a max timeout of 1 day ...

this is not urgent for now, but could make small difference in low memory scenario