Убивая приложение с панели задач, когда оно приостановлено, просто отправляет ему сообщение SIGKILL; не происходит постепенного отключения.
Если вы выполняете фоновую обработку, а затем убиваете приложение, возможно, вы не синхронизируете пользовательские настройки по умолчанию (записанные на диск) до того, как приложение умрет, что обычно происходит само по себе по внутреннему таймеру, но если вы написали в значения по умолчанию и затем вещь приостанавливаются до того, как произойдет автосинхронизация, что может объяснить это поведение.
Поместите это (как вы заметили):
[[NSUserDefaults standardUserDefaults] synchronize];
в вашем -applicationDidEnterBackground
обработчике в приложении-делегате. Таким образом, даже если приложение умирает или убивается, пока оно находится в фоновом режиме, вы знаете, что значения по умолчанию записаны.
В качестве защитной практики я обычно явно вызываю синхронизацию на объекте по умолчанию каждый раз, когда пишу состояние, которое считаю критически важным.