Way to reset an MCU when it's GPIO output becomes constant HIGH or LOW instead of a low frequency PWM
First thing to do is to try and make your circuit more robust to the transients. It sounds like you are not sure if this is even the trigger for the lock ups, so it's worth pinning down the problem. It could just as well be a firmware problem.

As a watchdog IC, something like a TI TPS3813 would be suitable. This has a window watchdog, which you have to 'kick' within a fixed time window. The trigger is edge sensitive, so it doesn't matter if the MCU locks up high or low. 

A good read on watchdog timers can be found at Jack Ganssle's page.