Solution was to add a handle scope:
void MyEmitFunc(const std::string & someStringFromQueue) {
v8::Isolate* isolate = v8::Isolate::GetCurrent();
v8::HandleScope scope(isolate);
v8::Locker locker(isolate);
v8::Isolate::Scope isolateScope(isolate);
v8::Local<v8::String> s = v8::String::NewFromUtf8(isolate, someStringFromQueue.c_str()).ToLocalChecked();
...
}