It is a follow-up to https://github.com/jenkinsci/jenkins/pull/2746
In Jenkins we call cleanup() handlers after destroying the WebAppMain context. At this point Jenkins is already semi-dead, hence we should proceed with the restart in any case even if the cleanup fails. Otherwise we may get a dead instance.
I am still not sure about LifeCycles, but Jenkins code reviewers approved it. Will monitor the related issues