It looks like it should work. What do you see in home-assistant.log? The details of what’s happening should be in there. E.g., when a script gets to a condition step, you should see something like this in the log:
2019-02-15 15:59:57 INFO (MainThread) [homeassistant.helpers.script] Script Blah, blah: Running script
2019-02-15 15:59:57 INFO (MainThread) [homeassistant.helpers.script] Script Blah, blah: Executing step call service
2019-02-15 15:59:57 INFO (MainThread) [homeassistant.helpers.script] Script Blah, blah: Test condition state: False
The problem is when a script is finished, it actually takes a small amount of time for its state to change from on to off. Unfortunately, during that period if it is attempted to be started again, it will fail. The way your two scripts are currently written, script.alexa_alarm has time for its state to change to off before script.alarm_loop attempts to call it again. But the same is not true the other way around. I.e., when script.alarm_loop starts script.alexa_alarm, script.alexa_alarm will get to the end and try to start script.alarm_loop before its state changes to off.
Anyway, the way to fix it is to add a wait_template to the first script: