I don't think it's practical to have nodes adjust their clocks. Instead, my feeling was better to have NTP (or whatever) handle clock synchronization independently (so your latter option!).
Internally, we send heartbeats between any two connected nodes in the system and this is where I imagine we'd measure clock offsets (cockroach as currently designed will end up with a very strongly-connected graph, though this may have to change to support larger clusters). Nodes will be run with a --max_offset (tbd) command line flag and if they measure offsets in excess of that, they should noisily commit suicide. The code for the heartbeats is in rpc/client.go and rpc/server.go.
Propagating information on measured offsets and merging that into a global picture will be a very important. We need to figure out what the reality of clock offsets in production is before I'm going to feel very confident about our guarantees. Certainly, we'll want to set our --max_offset at the 99th percentile.