Nice work

(although I haven't had a chance to test it yet).
One thing I did notice is that in Handle_OP_AugmentInfo you FastQueue a packet and then call safe_delete to free the memory. FastQueue (unlike QueuePacket) should free the memory itself, so you shouldn't call safe_delete following FastQueue.