Finished

There's space for improvement but it's a good enough prototype IMHO.
Yo hubiera hecho la jerarquia de MOCs de forma inversa. Es decir como parent hubiera dejado el mainMOC y como child el backgroundMOC, asi cuando se salva el contexto de background los cambios se propagan hacia arriba, hacia el parent evitando asi que tengas que hacer merge de los cambios cuando llega la notificacion de "cambios en el contexto". Asi solo tendrias que hacer saveContext en vez de mergeChangesFrom...