I have a simple model for the population:
a := 5;
b := 1;
h := 25/4;,
de := diff(P(t), t) = P(t)*(a-b*P(t))-h;
cond1 := P(0) = .5;
cond2 := P(0) = 2;
cond3 := P(0) = 5;
sol1 := dsolve({cond1, de}, P(t));
sol2 := dsolve({cond2, de}, P(t));
sol3 := dsolve({cond3, de}, P(t));
P1 := plot(rhs(sol1), t = 0 .. 5, color = blue);
P2 := plot(rhs(sol2), t = 0 .. 5, color = green);
P3 := plot(rhs(sol3), t = 0 .. 5, color = orange);
plots:-display(P1, P2, P3);
When the graph "hits the zero", population goes extinct, so I need to "stop" the graph there. I can use Optimization[Minimize](...); to minimize deviation from zero (and include this point, say, A, in t=0..A), but it's not always possible and kind of "brute-force". How can I "stop" the graph which "hits the zero"? Also, how can I find the point where non-extinct population becomes stable (say, 1% deviation from limit value)?

You can solve the differential equation, for an "exact" symbolic formula, without having to specify a particular numeric value for the initial condition.
Let's pick off the right hand side, for convenience. This is P(t).
We can solve that for a formula expressing where P(t) would become zero.
That prints ugly in character-mode, and nicer in the Maple GUI. It is a piecewise, showing that there is no root when P0 > 5/2. That is, when the initial population is greater than 5/2 the population doesn't ever become zero.
We can evaluate that result at various values of P0. The following does that.
It is known as two-argument eval, to evaluate an expression for specific values (substituions) of one of more of its unknowns. This is a very useful bit of Maple syntax, which I'll utilize several times in all the code below.
The closer P0 gets to 5/2, from above, the longer it takes for the population to ever get to zero.
We could even extract the formula (for the time t where the root occurs and the population becomes zero) within the piecewise, valid for P0>0 and P0<5/2,
We can find the limiting value for the population, as t goes to infinity.
We can re-express the exact formula for P(t) at particular values of P0.
We can find the time at which the population gets close (relatively), to its limiting value. We can do that exactly, or in floating-point,
We can even find a general representation of that,
That too can be evaluated at particular values of the initial population size. These agree with what was found above.
We could pick of the time value, alone,
Or we could pick off the formula, under the appropriate assumption.
And now for a plot, for a list of P0 values that attain zero population, and a list of values which do not.