Bad news: Your calculation is not quite correct
As you say, the initial price of a European call option is
$$C(S_0;K,T)= S_0e^{-qT}\Pi_1-Ke^{-rT}\Pi_2. \tag{$\star$}$$
However, the exercise probabilities $\Pi_1$ and $\Pi_2$ depend on the stock price $S_0$ too! Thus, you need the product rule and the chain rule to differentiate the option price with respect to $S_0$. The same problem applies to the calculation of delta in the Black-Scholes model. This makes the calculation a bit lengthy, see here.
Note that formula $(\star$) applies to many models, not just the Black-Scholes model and the Heston model. The formula equally applies to the CEV model, the jump-diffusion models from Merton and Kou, pure jump processes (e.g. variance gamma model), etc. etc. It is a consequence of the change of numéraire technique.
Good news: Option prices are homogeneous of order one
Suppose the stock price is modelled as $S_t=S_0e^{X_t}$, where $X_t$ is a stochastic process normalised to $X_0=0$ which does not depend on $S_0$. Thus, doubling today's stock price also doubles future stock prices. While not every model satisfies this property, a great deal do (e.g. all the ones I mentioned above). Recall that risk-neutral pricing suggests
\begin{align*}
C(S_0;K,T)=e^{-rT}\mathbb{E}^\mathbb{Q}_0\left[\max\{S_T-K,0\}\right].
\end{align*}
Homogeneity of order one simply means that for any $\lambda>0$,
\begin{align*}
C(\lambda S_0;\lambda K,T)=e^{-rT}\mathbb{E}^\mathbb{Q}_0\left[\max\{\lambda S_T-\lambda K,0\}\right]=\lambda C(S_0;K,T).
\end{align*}
Differentiating both sides with respect to $\lambda$ (using the multivariate chain rule) gives
$$ S_0\frac{\partial C}{\partial S_0}+K\frac{\partial C}{\partial K}=C. \tag{$\star\star$}$$
Comparing the coefficients in Equations ($\star$) and $(\star\star$), we get
\begin{align*}
\frac{\partial C}{\partial S_0} &= e^{-qT}\Pi_1>0,\\
\frac{\partial C}{\partial K} &= -e^{-rT}\Pi_2<0. \tag{$\star\star\star$}
\end{align*}
Some notes
Because $\Pi_1$ and $\Pi_2$ are probabilities and bounded between 0 and 1, we know that so is a call option's delta (ignoring dividend yields). You can use the put-call-parity to get a similar result for European put options. The calculation above is closely linked to Euler's Theorem on homogeneous functions. If you calculate $\Pi_1$ as an improper integral of the characteristic function of the log-stock price, $\varphi$, you can compute delta explicitly via $\frac{\partial \varphi(u)}{\partial S_0}=\frac{iu}{S_0}\varphi(u)$, which holds for homogeneous stock price models.
Equation ($\star\star\star)$ links the risk-neutral distribution function, $\Pi_2$, to an (observable) derivative of call option prices. Differentiating this equation once more with respect to the strike price $K$ yields the celebrated result from Breeden and Litzenberger (1978).