Would you consider adding a simple way of hooking new/delete and thus having a simple memory allocation tracker? Say, providing a simple way of registering new/delete and then just returning your wrapped versions?
EDIT:
I see you get somewhat close with 'public gamedevwebtools::core::memory::Allocator', but that doesn't seem to be used for what I'd expect--I'd suggest having something like Service::setMallocCallback and Service::setFreeCallback, and then letting the user just call your Service::malloc/Service::free in their own memory management code. Have added ability to pass in line, file, etc. on allocation/deallocation.
EDIT2:
I noticed you do the same once-a-frame business that we did, wherein you call and pump the service message loop.
One thing that we did was have a notion of messages running a command on an object--see the signature here: https://github.com/crertel/headcrab.js/blob/master/inc/headc... .
One helpful addition we had was letting you bind pre-function and post-function callbacks and arguments; this made it easy to, for example, call appropriate mutexes and whatnot on an object prior to querying it or mutating it. You may consider adding something similar to that--right now your extensibility seems to be mainly in overriding the on*Message stuff.
Good work again on your project!