I'll have more to say later, but instead of taking the packs closest to the enemy, try hacking the ones that are between your team and the enemy, or slightly closer to your team. Teammates picking up your hacked healthpacks gives you a pretty fair whack of ult charge, allowing you do drop that big EMP more often. And try not to forget to drop a pinger right before you dive in to drop your ult - once it pops, you become a very high priority target, and you'll need that escape. Drop your ult and immediately teleport out, or you're toast, because nine times out of ten, you're dropping that ult in an area where you're outnumbered and heavily outgunned.
Also, learn to prioritize targets for hacking - more often than not, it's not the healer you want, because your hack only disrupts Zen's healing and Ana's biotic grenade, and is almost entirely useless on Lucio. Go for enemies where their abilities form the core of their play - a genji without dragonstrike and reflect is an easy target, a rein without a shield or charge is little more than a big, slow target and a reaper without his wraith form or teleport becomes a very fragile ghosty indeed. And don't forget, you can interrupt many ults(like High Noon or Pharah's barrage), or at least take a lot of the teeth out of them(Primal rage and Genji's Dragonblade).