It's been a long time, so I can't remember all of the details, but I
think you can have goroutine per window. Grepping the
golang.org/x/exp/shiny/driver/*driver code for sync.Mutex gives
multiple hits.
You're right that the docs aren't helpful here. However, we were all
re-assigned from shiny (to working on other things) well before shiny
hit anything close to a "1.0 quality" milestone. And the initial focus
was on the single-window use case. For example, on mobile, you
couldn't even have multiple windows. All of the shiny/example programs
use a single window. I wouldn't be surprised if trying to use multiple
shiny windows doesn't work very well.