Arguably not correct to throw `IllegalStateException`, since there's presumably no way to tell in advance whether `stopAndRemoveNode()` will fail (i.e. determine the 'state' before invoking the method). Per suggestion below, perhaps cleaner to add a new unchecked exception type?