It's been a long time since I've posted so I thought I'd post this in case anyone else has had problems with freezing. I had an issue were my program occasionally froze at start-up and the reset button wouldn't even work. It occurred only at start-up but was seemingly quite random - around 1 in 10 boots would get into this frozen state. Hard reset (disconnect power) worked mostly but not always. I found that it seemed to be caused by the chip start-up time. I am using an Atmega8 with start-up time of 16K + 0ms (fuse bits 0xDF 0xCA) but when I set the fuse bits to a longer start-up of 258CK + 64ms (0xd 0xd9) the problem goes away.
I thought I would just put this here as a resource for others or if someone can tell me why this happens. I do not know if this is specific for Atmega8, 16Mhz crystal/22nf caps or the PL2303 I use for USB-to-serial on my home-brew Arduino.