Sorry I didn't write it down. I can probably reproduce it easily enough?
I was looking through the code and saw that it was adding itself with locking the array so I didn't think that was going to be the problem.
It was something to do with r.cachedBuffer being uninitialized or something IIRC?
The error was transient and hard to reproduce.
Basically, there was some underlying condition (maybe a race condition given the threading?) which after instantiating a gameobject with a FOWRevelaer on it, there was like a 10% chance the entire FOW system would stop responding.
After unsuccessfully poking around other parts of the code, I managed to get narrow it down to an error happening in that UpdateBuffer() call.
I think the cacheBuffer was uninitialized in the RevealIntoCache method. However, this was a temporary thing (which is why I thought race condition), as simply not breaking on the error causes smooth operation once the error gets swallowed.
I just tried for a bit to reproduce it but of course was unable. I had the stack trace in a text file on my notepad but I moved my computer since then and had closed it absentmindedly. :|