Creación de subprocesss CoreMedia.Player.Async cuando se usa AVPlayer en CollectionView

Estoy tratando de hacer que el desbordamiento de la stack supusiera una tarea imposible de lograr un performance de desplazamiento de ~ 60 fps en una vista de colección que contiene algunos videos aquí y allá (reproducción automática). He pasado meses en esto e intenté cada solución presentada en línea y me he acercado mucho. Crear el recurso en un subprocess de background y agregarlo a la vista está bien y tenerlo en reproducción automática es genial, puedo hacerlo sin ningún contratime en el performance.

El ÚNICO problema que tengo es que, con el time, acumulo muchas instancias del jugador (incluso aunque esté reutilizando el jugador y el reproductor de jugador en mis celdas …

hilos de jugador

Ahora esto está bien por un time hasta que el usuario haya visto muchos videos y, finalmente, los videos simplemente dejen de jugar, obviamente, ya que hay tantas instancias activas. Para detener esta acumulación, necesito eliminar el playerLayer de la supervisión cada vez, o replace el elemento de medios (que todos sabemos funciona en hilo principal y hace que esta tarea sea imposible).

ASÍ, mi pregunta es: ¿hay CUALQUIER OTRA MANERA de matar estos hilos viejos? Si es así, finalmente encontraré una solución para desplazarse suavemente con AVPlayer y puedo devolverle el favor a la comunidad y publicar todo mi código.