The terminal software is unaware why the shell quit. This is why it simply re-starts a shell to offer its services after maximising it again. Looking at the source, at first glance, Fingerterm seems to simply
Qt.quit() on any signal from the terminal, so Lipstick doesn’t see it has been “properly” quit and keeps it in a sort-of undead state until maximised again.
Funnily, this is also the case with many other terminal emulators on many other mobile operating systems. I think this can be catched and handled better, but if it were as easy as I think, it would probably have been done already years ago.
Edit: actually, its much simpler. When the shell quits, it takes the terminal emulator down, too. Lipstick just sees the app has died, but it didn’t “unregister” from the app grid (by shutting down properly) and thus it shows up in that half-dead way in the app grid. On activation, Fingerterm just starts again from scratch.