The block deserialize plan above is now implemented. came out cleaner than I anticipated. Each of the 4 steps above took a day, now I'm debugging through it. Once the node is running I'll implement the unit tests, prob another day. Looking forward to having it running so can first get a measure of the benefit.
I think I will end up removing the linear allocator. This will definitely be more efficient than that at a minimum, simpler, and restores some fundamental code to a much simpler and more readable state.