Does your calling script do anything after the script call?
What happens (as far as we can tell) is:
Main script calls script 2
Script 2
preforms action
exit 0 (success)
Main script can get return status (exit 0) of the called script
Main script either performs other tasks below your task selection code (if there are any) or exits.
You can use the exit status of the called script to take additional actions in the calling script.
Shell scripting tends to be pretty linear in that when one command completes, the next will start. Running another script, from the perspective of your main script is just like any other command.
The task selection code you provided only allows for one task selection, then it is done.
If your intention is to remain in the main script's task selection code, then you need to write a loop around the task selection code and add an exit item to your task selection code.
As stated by Corona688, removing the exec leaves your main script running, and the command to run a second script returns as expected. What happens then is up to the code in the main script.