What do you have on your Phase1 proposal checking? If it's 'default' or 'strict' try changing it to 'obey'.
From man racoon.conf(5):
proposal_check level
specifies the action of lifetime length and PFS of the phase 2 selection on the responder side. The default level is strict If the level is;
obey
the responder will obey the initiator anytime.
strict
If the responder's length is longer than the initiator's one, the responder uses the initiator's one. Otherwise it rejects the proposal. If PFS is not required by the responder, the responder will obey the proposal. If PFS is required by both sides and if the responder's group is not equal to the initiator's one, then the responder will reject the proposal.
claim
If the responder's length is longer than the initiator's one, the responder will use the initiator's one. If the responder's length is shorter than the initiator's one, the responder uses its own length AND sends a RESPONDER-LIFETIME notify message to an initiator in the case of lifetime. About PFS, this directive is same as strict
exact
If the initiator's length is not equal to the responder's one, the responder will reject the proposal. If PFS is required by both sides and if the responder's group is not equal to the initiator's one, then the responder will reject the proposal.
The way I interpreted this for my troubleshooting was that if 'default/strict' are in force and the remote end reboots, the local end will ignore then incoming IKE until it own key lifetime expires. Whether that's right or not, it worked for me and the Cisco ASA I was having as spat with!