Reimplemented TraitsInConstructOrder()

For https://github.com/OpenRA/OpenRA/issues/6701

Hopefully this should be better
`exceptionString` is more C#-ish.