use Object.observe() for delivery scheduling instead of setTimeout()