All of the calculation (pak retrieval, text reading, array building) is done via a backgroundworker (in a separate thread), otherwise the UI would freeze. I make cross-thread calls to append text to the textbox, set progressbar max value and set the progressbar value. The crash occurred because the backgroundworker initialized faster than the UI itself, sometimes writing to the textbox before it had been created. Now the method is called after UI has been created.
If there is another less complex way to stop the UI from responding, it would be good to know, but from all the methods I tried, this worked the best. I would also like to try and run the textbox or the abort button in a separate thread to make the abort button always respond, but so far haven't had much luck with it.
As for errors being caused by traits - I'm not a trait expert, but our trait guy is using your validator and there are some errors that your validator doesn't catch. So far it is only the case on BI, not ALX. Maybe a hardcoded limit somewhere? I know he makes way too complex traits, so it might be that. Still, disabling traits makes it not crash, so that's that.