I use a pair of transitions
CCDirector::sharedDirector()->popSceneWithTransition<CCTransitionFade>(0.5f);
and then
CCDirector::sharedDirector()->replaceScene(CCTransitionFade::create(0.5,scene));
So the screen fades out to a black screen (the transition scene) and then fades back in.
The original poster is talking about heavy-weight game scenes, which are similar to my scenario.
In this case, the replaceScene call was taking too long – loading that new game play scene was slow.
So I run code like this:
SimpleAudioEngine::sharedEngine()->preloadEffect(SFX_FILE_32);
SimpleAudioEngine::sharedEngine()->preloadEffect(SFX_FILE_33);
SimpleAudioEngine::sharedEngine()->preloadEffect(SFX_FILE_62);
SimpleAudioEngine::sharedEngine()->preloadEffect(SFX_FILE_63);
and this
CCTextureCache::sharedTextureCache()->removeTextureForKey("images/main_menu.jpg");
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("sheets/ui_buttons.plist");
Because all this loading takes time, my interim scene is not blank, it has images and a progress bar to keep the user happy while the memory work is done.
The original poster is describing a peak memory usage of 40, which for many devices (on Android) is too high.
I ran into this same problem. Because I cannot control the runtime speed of the devices, I accepted that I needed a responsive interface for the user.
If I used a static image, or a screenshot of the previous screen, the user (depending on their device) would not know if something had gone wrong or what not functional.
The first releases of our early CC2d-x games did not feature progress-bars and loading screens and our analytics package told us we were having users quit / abandon the game during this “freeze” (their words, not mine) between scenes.
In this case, to both achieve an acceptable peak memory usage (AKA, not running two 20M scenes at the same time, as the OP said) and a responsive interface I adopted an animated loading screen.
Examples of the result can be found for free in any of my games, for example, Heroes.
https://play.google.com/store/apps/details?id=com.tresebrothers.games.heroesofsteel