1) Sure - depends on how that certain time is defined, though.
Generally, this can be done by using formulas - e.g. pass on the actual use costs as it's initial value and have the formula check whatever conditions you want and manipulate the value accordingly.
2) Same as #1 - use a formula, cast time passed on as the initial value.
3) Hm, that might be a bit tricky - generally, Consumable status values can use others as a barrier, but something like this isn't possible out of the box.
You'd have to set up the status changes of your abilities twice, using their requirements to target either HP or MP based on that shield (e.g. status effect) being applied.
4) Make sure the variable's key matches MyVariable - and it also depends on where it's used and the setup there. E.g. when used in some console text, it's most likely using global variables, so the MyVariable string variable needs to be stored as a global variable.