In this case, there is actually no reason to delay the following methods : 

 - setting the user as template
 - update country on geonameid update
 - update password

They could be synchronous.

In the case of delete of the entity, you can use the manipulator in controllers instead of using `$em->remove($user)` that should be prohibited.

With these changes, you don't need the listener. It's a double advantage : 
 - less memory used (no circular refs / no need for lazy loading)
 - an event is removed from the stack of the pile of doctrine events.