I think this article from
dartlang.org pretty good on that topic..
Coming from Lua, one "Dartish" idea you must get used to is isolates..
you will use that concept, on the dart script side and
also for handling with the C++ engine..
Isolates have their own isolated memory pool (using TLS)
and run independently of one another..
the way you share the objects and data from one isolate to other
is using message passing.. through Dart ports..
In the tutorial above, it will explain those concepts..
specially on the async api example..
I hope that helps a little..