How about adjusting his cloak visibility based on how fast he is moving (and also the drain on the cloak energy)?
For example, when he is standing completely still, have it drain really slowly and make him completely invisible. If he is crouch-walking, have him be slightly visible with a faster drain, and then increase it more for running and then again for sprinting (with sprinting having the fastest drain and being the most visible).
This way, rather than just running into position before the cloak drains completely, he can take his time getting into position by stopping to take in the situation (without the pressure of the cloak energy running out), and will be able to stop moving if he fears he will be detected. He would also be forced to attack from behind or run the risk of being seen as he would be more visible when sprinting towards a target in their field of view. It would punish the bad Phantoms who run at people’s faces without thinking about a more clever approach (the ones who only care about cheap kills), and it would reward more calculating Phantoms who get into good positions first, cloak, and get into a position where they have a big effect or escape easily, and allow them to wait for an ideal opportunity to pounce.
Also, with regards to his EMP, it would mean he can get into position next to deployables and wait for his team to push (assuming he had enough cloak energy left), and then pop out, rather than waiting further back and then running in cloaked when his team push. He would have a lot more time to allow him to wait for a solid opportunity, but he would also run the risk of being discovered the longer he is in position. This might require a change of detection abilities though, as it could be too easy to detect him when waiting.
It seems to me that this is a problem that can’t be solved by tweaking variables, so thinking outside the box might present a better solution. One of his issues is that he has no escape mechanism, so once he commits, he is running the risk of being killed (especially in higher level matches where players are communicating and will call him out). The other issue is that he is only countered by killing him first (early detection) or killing him after he gets a kill, in which case all he really does is trade himself for a priority target (which isn’t necessarily a bad thing as it will help his team with a push or delay an enemy push).
The devs will have to decide how they want him to be countered, and what they want him to achieve when he is played seriously as part of a team.