Making an API like CamX did for the PauseMenu is some extraordinary, endless and painful work.
The problem with ScriptHook comes from the main loop that is only ran when the player is controllable and fully loaded.
As far as I can remember, the game state in R* Editor is unfortunately different and it will prevent any mod from being loaded, therefore it would require some external injecting and hooking. (or simply patching the ScriptHook.dll at the address where it compares the game state but that's another problem...). Maybe I'm wrong, and if it's the case then it it could allow skipping most of the steps below.
I'd rather render the menu in DXD11 (to make sure it gets rendered without relying on the drawing natives) and call the timecycle native setter after getting the natives hash table. That's at least how I did for my camera helper in the R* Editor that allowed me to place a new camera with the same rotation and position of the last camera from the previous clip (it basically draws the coords/rot of the active camera).
Unfortunately I don't have the time to edit it and make it compatible with your request but if nobody finds a solution, I'll see if I can step in!