Right, I've found the leak and it is quite interesting.
The leak was images (my fault in the exemption routine - not deleteallimages() which I am not using)
I don't delete all images, but have to go through a list and check for exemptions (saves reloading the atlases etc.)
In my level initialisation, I use createSprite(LoadImage("aaa.png")
This took up sprite slots and image slots.
At the end of the level, I delete all the sprites (~1200) and selectively delete ~600 images). Both manually, without deleateall etc.
Second time around, there are the usual ~1200 sprites to delete, but no extra images to delete (just the 21 exempt ones).
Weird. The same initialisation code loads the sprites using createSprite(LoadImage("aaa.png")) but doesn't leave a residual image the second time around - I have commented my debug output:
debug new level start
tag1 undeleted sprites:1107 // tag1 is entry into cleanup routine
tag1 undeleted images:639
tag1 undeleted text:14
tag2 undeleted sprites:0 // tag2 is after sprites have been cleaned up
tag2 undeleted images:639
tag2 undeleted text:14
tag3 undeleted sprites:0 // tag3 is after images cleaned up
tag3 undeleted images:21 // 21 images are exempted (atlas, textures etc.)
tag3 undeleted text:14
tag4 undeleted sprites:0 // tag4 is after text object cleanup
tag4 undeleted images:21
tag4 undeleted text:0
debug new level start
tag1 undeleted sprites:1087 // next cycle - expected amount of sprites
tag1 undeleted images:21 // where are the images?
tag1 undeleted text:14
tag2 undeleted sprites:0
tag2 undeleted images:21
tag2 undeleted text:14
tag3 undeleted sprites:0
tag3 undeleted images:21
tag3 undeleted text:14
tag4 undeleted sprites:0
tag4 undeleted images:21
tag4 undeleted text:0
Yes, before, I was generating 600 images each level.
Game normally runs at 75mb. Each level, it climbed 2mb or so.
Probably not run out of memory, but 600 extra images x number of levels (checks what the players got up to) level 245. So, ~147000 images.. hmm.
Also, may even carry over between games, so could have been even more!