Hello Maxim,
The best approach I found so far is actually quite similar to yours, I just use a pressure sustaining valve to keep the pressure in the upstream node in a minimum value. This way the program limits the flow to assure this pressure.
The "most correct" solution would be actually modelling the tank, but the software can't handle these tanks well. This is what I think it happens:
In epanet's model, tanks must have an minimum and a maximum level. Below minimum level, there is no outflow. Between them, there is inflow and outflow, and when the maximum level is reached, there is no more inflow.
Besides that, the software is quite smart. It makes the calculations in entire timesteps. If it notices that within the last timestep a "rule" was broken (for instance, a tank below minimum flow had outflow, an tank had inflow after reaching the maximum level, other internal rule or even an user's control rule), it recalculates a new timestep and remakes the calculations to apply the broken rule.
A pressure breaking tank, though, has almost no volume between the minimum and the maximum levels. They're the same. This situation forces the program to impose a lots of new timesteps.
Add to that the (common) possibility that the pressure breaking tank (I'll just write PBT from now and on) is connected to an actual tank downstream. The PBT will have lots of available head to provide flow to the tank, thus causing a very high flow.
So what you have is "tank is opened, flow = (absurd value). Within the time step tank closes. Recalculate. After closing, tank fills quickly. Recalculate. Tank is opened...". You're likely to get an system unstable warning. When you use a flow control valve to impose a maximum flow, you somehow avoid the absurdly fast reaching of maximum and minimum levels, but depending on the situation you might still have the problem.
In a number of situations I've just set the attempts to a higher number (default is 40, I've gone as far as 100.000) without correcting the system unstable error.
The pressure sustaining valves mechanism seems to be different, I'm not sure which is, but it works nicely and running times are quite reasonable.