Build and cache callsite once per callback.

Saves per-callback overhead, but also means lifetime of it is righter,
hopefully avoiding referencing unused memory.