Last time I checked, the FFI binding was blocking the whole worker miserably.
I think it's a problem of how nanomsg itself is implemented as Aapo pointed out.
You would need to take out the transport layer handling out of nanomsg in order to be able to use the cosockets API instead, which will fix the issue presumably.
Don't take my words at face value though -- I haven't looked into this recently, so check the code for yourself.
Best,
Vladislav