My first attepmt I added a second loop to check if processing should stop. This attempts to optimize by using the original loop (one loop). Also resets `elapsed` time on finish of tween which fixes `tell()`.