In your destructor, you are probably doing 2 things :
- stopping actions, removing some visuals etc ... : you want that to get done at a specific time
- releasing resources (other objects) : you don't care when it's done, as long as it is done
The first should be moved in another method (finalize is what it's called in Android), and the second should be left in the destructor.
Cocos2d-x AppDelegate have a method called applicationDidEnterBackground, did you try it ? I don't know the specifics of an app lifecycle on Windows Phone though.