Looks like we're capturing the dictionary for use in the go'd closure incorrectly. Instead of putting the dictionary in the closure, we're putting the address of a slot on the stack that contains the dictionary. Of course, that slot is an address on the stack of the caller, which might be long gone by the time the goroutine runs.
Maybe forcing the dictionary to always be captured by value instead of by address would fix it. I thought we already did that, but maybe not.