Doesn't solve your issue directly, but why don't you try epgimport, rather than crossepg and see what happens?
Well, it is EPGERFRESH rather than CROSSEPG that causes the problem. Probably some quirks while zapping the channels. Certainly I tried EPGIMPORT which is much quicker than zapping through all channels and it does not occupy a tuner for that.
Unfortunately the quality of the data read by EPGIMPORT rather limited with the standard German and Austrian channels. In addition the time code is often off by a few minutes and normal zapping reads the channel EPG in addition to the already read entries from EPGIMPORT. This leads to overlapping duplicates. I could decide to not update from the channel EPG which in turn leaves me with some channels entirely without EPG, since they are missing in the EPGIMPORT data.
Even the author of EPGIMPORT states that it is not suitable for providers that have good quality EPG in the channel, as most European channels do.
So yes I did try this before and it was not really usable. However, it did not hang my box. If the data quality would be better, I would happily dump the channel EPG along with EPGREFRESH in favor of EPGIMPORT, even though I prefer things that can do their duty without relying to some voluntary service on the internet.