Closing powerbook lid doesn't result in sleep and freezes computer


From time to time I observe this very anoying 'bug' on my TiBook 1Ghz 1Gb RAM with Mac OS 10.4.2. I used the search function and could find all kind of freezes but none seemed to be similar to what I observe...

At times, especially after a long day working on my powerbook, when I close the lid the screen goes dark but the ventilator keeps spinning a long time (15 min. and more but usually this is the time I want to pack my laptop and go home :-( ) and the sleep light doesn't go on. When I reopen the lid the screen is still black, pushing buttons doesn't work (adjusting volume doesn't give a sound) but the ventilator still keeps spinning. The only option remaining (I suppose/am affraid) is to hold the power button to switch the machine off (while hoping I didn't lose too much work).

As for potential causes I was suspecting the following things I regularly swap (in which case it would be a Mac OS X bug). I regularly switch between Ethernet (at work) and Airport (at home) for networking/browsing. I also have an external Firewire HD which I regularly disconnect (using the eject button in the Finder) before putting my powerbook to sleep. Could this cause the observed behaviour?

I have been running cocktail for repairing permissions etc. but the problem seems to be coming back when I least expect it. I hope it's not my TiBook that is getting old or st.

Any ideas what might work? What might cause this problem?
Happens sometimes to me, too. It's ugly, shouldn't happen. Haven't seen it in 10.4.2 so far, though. However, my AluBook takes unusually long to go to sleep sometimes. But it 'manages' alright, although late...
I also observe delays of about half a minute from time to time, but those don't really harm. Maybe I should check if my powerbook eventually also goes to sleep after a (very) long time in the abovementioned case...
Yeah, the halfaminute delays aren't that bad, but I'm used to my PB going to sleep _instantly_ and also wake up instantly. Currently, it simply doesn't. And that's bad. (Just checking right now, it _does_ work alright after a reboot... Hmm...)