I found the answer here: https://stackoverflow.com/a/20167998/553294. Here supercat states that:
If an object has an active finalizer, then if the GC would collect it (but for the existence of the finalizer), the GC will instead add it to a queue of objects whose finalizers should be run ASAP and, having done so, de-activate it. The reference within the queue will prevent the GC from collecting the object until the finalizer has run; once the finalizer finishes, if no other references exist to the object and it hasn't re-registered its finalizer, it will cease to exist.
So an object is considered reachable while in the finalization queue, which means the inner list is considered reachable as well. Thus, it is safe to access the list from the finalizer.