+ Всё это ещё должно работать при выходе из игры.(В спящем режиме , пока игрок не зашёл назад в приложение)
Это никогда не будет работать.
Считай время и либо как-то по формуле вычисляй прогресс, либо быстро-быстро, когда пользователь открыл приложение, считай каждый тик, который был пропущен, пока приложение было закрыто.