I've made Windows DLLs work with Go, so I can be done, but I would
strongly suggest that you avoid it. Windows applications expect to be
able to unload their DLLs, and you can never do that with Go.
There are work arounds, (search this form for my previous posts),
but they are ugly and fragile.
So, to save you alot of pain, I would advise you to use a server process
as Brian suggests. You can provide in your SDK code wrapper methods that
can, behind the scene if need be, start, stop,
and makes RPC calls to that service to serve client requests.
If need be, then the server could eventually remote, or shared over the network.
If that doesn't work, I would just provide the source code to everything.