OK, in general, if you have a complex system with hundreds or thousands of causalities, there will be zillions of causal paths, many of which will cause system failures. Most of them will be not-obvious, because we've aleady thought about the easy ones and made sure they aren't going to make trouble. So there are, in effect, evil genies inside our systems creating intermittent problems just to torment us.
Less general: we have four products that have the same general control core: an NXP LPC3250 ARM processor, serial flash chip, FPGA, STM1818T powerup reset chip. At powerup time, the ARM reads our small boot loader program from flash, into CPU ram, and runs it. The boot in turn reads a small descriptor and then a big block of data to configure the FPGA. It then reads another small descriptor and then loads the application code, also into CPU RAM, and runs that.
Two of the products work fine. Two others have the following behavior: They fail to run when first turned on. If you power them down and up again, they are fine thereafter. If you store them for a few months, they do the first-time-crash thing again. My innovation is to bake them overnight at 120C, which has the same effect as longterm storage, namely it won't work at first powerup. That at least lets us try a few experiments per day.
Just for fun, we soaked one in water (to discharge every exposed electrical node on the board) and dried it at moderate temperature. This did not induce the failure mode. So if the time delay is an electrical node discharge, it's inside a chip.
All four products use parts out of the same bins. Two always work, the other two almost always have the startup problem. OK, we could have all sorts of hardware or software bugs, but what's with the months-long time constant?