Research how the check for upgrades could require less RAM
It might be that the initial check for available memory (in the shell wrapper) uses overly conservative settings. Otherwise, porting the whole things from Moose to Moo (doable on Wheezy) or Moops (doable on Jessie, with a couple backports) might help.
I've successfully ported tails-persistence-setup from Moose to Moo + Function::Parameters. It would be good to measure how it affected its RAM consumption (Tails 3.8 vs. 3.9) and if it makes a relevant difference, then I should consider porting the Upgrader as well.