I wanted a character where roomscale was fully preserved, there are a few upsides to de-coupling it but its also a ton more effort. I even have an alternate character the (VRSimpleCharacter) that locks the camera and just moves the character instead which is closer to what you are doing.
Your approach should be fine generally, though you will have to decide how you want to handle injecting the movements into the character movement buffer, otherwise you’ll have to be fully client authoritative.
In single player, doesn’t really matter at all.