I just slowly starved a fruitbat while idle and the hunger stages went from "well-fed" to "thin" to "famished". I did not observe the "starving" state but it could have been in starving in the 47 seconds from when I last saw "famished" and the bat flying off. The timing of the stages are as follows: from what I believe was fully "well-fed" to when I noticed "thin" was 25 minutes, then 34 minutes after that to "famished", then 38 minutes until it flew away. Posting this preliminary research here instead of changing the wiki page.
Unfortunately there is EXTREME variability of the hunger phases. It usually takes more than 30 minutes, but it happened to me within 8 minutes from well fed to famished.
Bug reply was this:
> Change status from OPEN to DENIED Thank you for your bug report. I looked at the code and checked it against your log (thank you very much for including a log with timestamps - very helpful). There's a lot of randomness involved in bat hunger, by design, and it looks like you just got unlucky. The chances of this happening are low, so if you see it happening persistently then please do file a new rep, but as it stands I think this is working as intended.
Another bug reply mentions it's fine to have auto-attacking npcs attack fruitbats, thus we need to park the fruitbats somewhere. But there's no where we are allowed to park our bats, because we can't use the belfry if not in CTF and the bat cave is only during Witch trials.
Since we can't know how long before they hunger we can't be safe with leaving fruitbats anywhere. But we're forced to do this. I guess they want to force us to hire bat sitters or play fruitbat roulette or just avoid all the places with npcs attacking fruitbats. It's very sad that they don't care to do anything about this, but maybe someone else will bug report and they'll do something.
So anyway doing lots of testing might help figure out the average, with the caveat that the stages can go super fast randomly.