Sorry for the delay in response.
I confirm that the device has locked up by means of observation i.e. the ancillary devices connected to the CPU stop operating.
As a further update to this issue I believe I have found one area where a device lookup is occurring.
Our device connects to a host via a GSM/GPRS/TCP connection. If any one of these connections fail to connect or have been connected then subsequently fail they try to reconnect. If however they fail to reconnect after x time period then the device is automatically re-started by means of the at+cfun=1 command. When the device reconnects or is restarted is all controlled via the adl_tmrSubscribe command. When the device is restarted via the at+cfun=1 command a record of this is stored in persistent memory (i.e. information that can survive a soft restart).
When the device has locked up (i.e. no ancillary device action and unable to communicate to the device via the debug port) I have noticed that the persistant information is telling me that the device tried to perform a device restart (at+cfun=1) but, instead of the device actually re-starting it remained locked up.
I do have further investigations to do but if anyone has any further suggestions please let me know. I may well end up using an external watchdog chip as zafer suggests.