After a call to removeAllSystems, my systems are getting update signals. This is because I'm calling removeAllSystems during an update. So while removeAllSystems clears out the systemList (its head and tail are null), all the system nodes still have their next value (yet their previous fields are null).
I guess my expectation was that when you call removeAllSystems, it would immediately remove them and send no more update signals.