use defer for unlock where practical; also fixes a race, I think
use defer for unlock where practical; also fixes a race, I think

(the call for timestamp was outside the locked bit of code)

fohristiwhirl/disorderCook,fohristiwhirl/disorderCook,fohristiwhirl/disorderBook_Prime,fohristiwhirl/disorderBook_Prime