Consider the traditional control diagram below.
If you set $G=(2\zeta\omega_ns+\omega_n^2)/(0.13s+1)$, then you'll get the following closed-loop system transfer function:
This can be achieved through zero-pole cancelation, which is doable since $G$ has a zero in LHP.
Finally, you can ...
As you pointed out, $y=f\left(u\right)$ is a static map, hence it does not represent in any way the temporal evolution of a dynamical system.
With this in mind, resorting to an observer is fundamentally a wrong approach. An observer, in fact, provides you with an estimate of the temporal evolution of the dynamical system under subject; however, here $f\left(\...
Deciding where to deploy the FSM, either in the timer interrupt or in the main routine, is the easiest part. Either way will work just fine. Probably, the FSM is not that critical, hence it could be conveniently running within main(), whereas disabling/enabling the timer interrupt is not really necessary if you resort to the use of a dedicated flag (...