If there exists ω=φ such that |KG(jφ)| = 1 and ∠(KG(jφ)) = -180°, then we know that s=jφ must be a pole.
This is incorrect, and is leading to a misunderstanding.
The poles of the system are the roots of the characteristic equation of the Open Loop transfer function $$KG(s)=0$$
the roots are of the form $$s=\sigma+j\omega$$
These are the poles and zeros that are analysed in the Bode Plot.
Once the loop is closed the poles move location to be the roots of the characteristic equation $$1+KG(s)=0$$ You can view loop compensation as a method of moving the open loop poles into more suitable (stable) locations in the closed loop. This can even by performed directly using pole placement.
However, Bode stability analysis is based on the Nyquist Stability Criterion. So the condition for oscillation in a negative feedback system is unity gain and 180 degree phase shift :$$KG(s) = -1$$
and therefore the Bode plot illustrates the "stability condition" by rearranging $$KG(s)+1=0$$
This happens to be the same equation as the characteristic equation of the Closed Loop. But it is a misunderstanding to see this as relating to Bode stability plots, which are an Open Loop analysis.
The Nyquist Stability Criterion also tells us that in general (but there are exceptions), a closed loop system is stable if the unity gain crossing of the magnitude plot occurs at a lower frequency than the -180 degree crossing of the phase plot.
The transfer function of a stable (LTI) system needs to have all its poles in the left half-plane, i.e. any pole \$s_{\infty}\$ must satisfy
$$\text{Re}(s_{\infty})<0\tag{1}$$
If this condition is satisfied, then any bounded input signal \$|x(t)|\le K\$ will result in a bounded output signal \$|y(t)|\le L\$ with some positive constants \$K\$ and \$L\$. This concept is called BIBO-stability. Poles on the imaginary axis, i.e. poles with \$\text{Re}(s_{\infty})=0\$ do not satisfy (1), and, consequently, systems with such poles are not stable in the BIBO sense.
In some contexts, systems with poles on the imaginary axis are called marginally stable, but such systems will generally produce unbounded outputs for bounded input signals.
Best Answer
You can use a Routh–Hurwitz matrix to stabilize the system.
A Routh–Hurwitz matrix is a method for checking wheather or not a system is stable. It can also be used to stabilize the system by giving you a new denominator function for G(s).
According to this method, a system will be stable if the first column of the Routh–Hurwitz matrix contains only positive values.
You can stabilize the system by introducing a gain k and re-calculate the Routh–Hurwitz matrix to determine this k value that makes the system stable. In other words you can stabilize the system by inteoducing feed-back into it to conpensate for the unstable components of G(s).
Check these additional resources if you're still unsure about how to do this: