Hey!
Yes, I'm using the standard package. Running it is actually quite simple. Make a ServerStart.cs script, create a GameServer object, set parameters and Start it. I also added a public ServerStart property to GameServer.cs so I can communicate easier through a dispatcher.
Keeping the two threads safe isn't really problematic either. What you need is a proper thread safe generic array and not to many calls from thread to thread. I abstracted everything to a UserCommand class that has the info of user keystrokes and/or states. (rotation for example)
But keep in mind that you probably won't need this if you're running a 16-32 player server. I try getting 50-100 players into a lobby so optimizing and having the least amount of bottlenecks is crucial. The least thing you want is not receiving packets just because something stalls in the unity thread. And thanks to the garbage collector these things can happen.