Why do you bother with receiving signals? systemd will do all this for you with
systemctl start app_start and
systemctl stop app_start. I don't know what your script do and why do you need to do special things with
ExecStop=/usr/local/bin/app_start_stop to stop the service
app_start but there are some things that should be noted when
app_start_stop will not execute then (1).
Group is default root, also
KillMode=control-group so you can omit this. Because network.target is a static unit it is important you use
Wants= for it. You also suppress any output. I would not do that because you cannot see any (error) messages. By default they will go into the journal. You can look at it with
pi ~$ journalctl --unit app_start.service
Without knowing what your script do I would set up the unit as follows:
With all the timing conditions it is difficult to see what happens with the service
app_start particularly when it fails or it is killed with
TimeoutStopSec and then the
app_start_stop isn't executed but the service starts again after 120 seconds. I would try to make a more stable script.
 man systemd.service