You will need to use AppWarp S2 (on-premise) solution like you've mentioned.
You'll probably need to use the ITurnBasedRoom and its sendMoveUpdate function.
So the way I recommend is that client sends its move to the server. You override the handleMoveRequest on the server. Decide whose turn you want next in the handler. Then if you want to jump/skip etc. set doDefaultTurnlogic = false in the HandlingResult. In the next timer tick - you can use the sendMoveUpdate API and update the turn according to your logic.
Do go through the following page for details.