How is 3G turning off different from people parking their car underground and not driving it for a week?
Another commenter speculated that when you're out of service, the software correctly identifies that there is no tower to connect to and stops trying. But when you're in service, the code repeatedly tries to do the 3G handshake because it can see a valid tower.