What I found out was if you throw a FaultException from a new worker thread, it doesnt percolate up to the client but just crashes WCF.
Any solutions???
example:
var thread = new Thread(new ThreadStart(
                delegate
                {
                    new Killbot().KillAllHumans(); // Throws a FaultException
                }));