All the above requirements can be implemented using AppWarpS2. AppWarpS2 provides server side sdk as well as client side sdk which can be downloaded from here. The server side implementation can be done in Java whereas Client side development can be done with the platform of your choice which is Unity in your case. The AppWarpS2 server already comes with ready made features which are in-built Room Management, Matchmaking, Connection-Resiliency, RPC, Turn-based room managent etc. However, you can customize the server as per your need by overriding the default logic using provide interfaces. Once you complete the server side development and you want to go live with this then you can host your server on your physical instance or on our hosting solution called GPaaS.
Please have a look at the Dev Center and samples of the AppWarpS2.
You can always write to us on email@example.com or here on forum in case face any problem.