1a. Yes, we’ve got threading primitives - there is for example
fork node. Moreover Luna tries to automatically schedule computations in parallel when our compiler discovers they are heavy enough and not connected with each other. However the automatic parallelism is a very early stage.
1b. No, Luna is lazy by default. It is described in documentation in much more details.
1d. Connections between nodes do not have buffers by default - they indicate bindings between variables. However, what a connection mean is “configurable” in Luna. If you are familiar with Haskell-like languages - connection is just a Monad’s bind operation and you can define your own meaning for it. If you don’t know Haskell - your library can define what actually connection means. There is already an example of it in Luna - take a look at the streaming demo scenes where connections do actually have buffers and do stream data between nodes working asynchronously. But this behavior is not embedded in Luna - it is library defined.
I’m sorry for rather short answers here, I hope I clarified the picture?