No need for GVARs or Logical switches. You can use GVARS and it's a bit clearer what is going on with them but...
Attached is MaxThrKnob.eepe created with OpenTX Companion 2.1.8. Let me know if you need an example for 2.0 or 1.0 since they used different names.
There are 3 example models
01 - MaxThrRates shows the the "Rates" method I described above where you use a switch, SA here, to switch between 3 different options for max throttle. All the action is on the INPUT. I chose SA^(wt 70, offset -30 ), SA-(wt 85, offset -15), SAv(wt 100, offset 0). The weight scales the range of the Throttle input (the "Rate") and the offset moves it back to start at -100. Note: The last line with no switch is a defensive programming technique to ensure there is always an active Input line in-case you delete one of the lines and leave the switch position undefined.
02. - MaxThrKnobGV shows a method using a knob to change the value of two global variables which are then used to set the [THR] Input weight and Offset. The action is divided between the INPUTS and Special Functions page. Basically the same as model 01 but the "Rate" is continuously variable. The variation in the range is limited to upper 40% of the total range (+20 to +100 of total -100,+100). The offset moves the range back so the throttle starts at -100. This is active when SA is back SA^. When SA is not back then the Thr Input takes the default wt +100 offset 0 curve.
03. - MaxThrKnobMx shows a method using a knob to change the value of two mixes which scale and offset the Throttle mix. All the action is on the MIXES page. Essentially this works just like model 02 but it uses a "Multiply" mix *= to scale the throttle range and an add mix += to offset the scaled Thr mix to start at -100. It is important to put the multiply mix first or you will also multiply the offset creating unexpected behavior. The first three mix lines act together when SA is back, SA^. When SA is not back, !SA^ then the Throttle has a regular wt +100 offset 0 mix. The REPLACE mix is used for this line as being the best descriptive match but does not act.
Personally I think solution 01 may be the best for the application...limiting max throttle for easier flying...since its very similar to setting "Rates" on Ail or Elv which serves the same purpose.
I only included solution02 because it makes understanding solution 03 a bit easier...or maybe it doesn't...anyway, it uses up two global variables unnecessarily (there are only 9 per flight mode) and it adds some complexity by spreading things across two config pages but it shows that you can dynamically change the weight and offset of an INPUT or a MIX.
Solution 03 is the coolest and a bit of a mind bender when you first see it. It's a little hard to explain without doing the math but essentially the "multiply" mix line varies the Thr weight with the value of S1 restricting the range and the "add" mix moves the mix range back to start at -100. You should note that the numbers used for Weight and Offset are the same numbers used to Scale S1 in the 02 solution
Note: In the above solutions I chose SA^ to enable the most restrictive Input or Mix because that corresponds to the default Switch Test when you first enable a model. SA^ is the default "safe" or starting position. Obviously you don't have to use switch A and you could chose different switch starting positions or different inputs or mixes as your "safe" or starting configuration.