that strongly depends on your program flow.
If you want to completly halt gametime, using pause seems to be a pretty good approach.
If animations and other npcs should continue to move and act you need a different approach,
When you want to restrict processing only on certain game elements you can ether branch your tree and set the pause mode corespondingly,
Or you can implement a master object wich calls all the objects to update and stop those objects by not calling them to update.
Or make a singleton and set a pause flag and whenever a object wants to update it first checks this flag.
... sure there are many more ways to archive this ....