[Util] OneTimeRunner now always has a parent.

So it can be safely destroyed if a dependent object is destroyed.