That's not possible for one simple reason. The script executes in a serial fashion. One step at a time.
What you are asking requires asynchronous activity.
In one instance you need to play a message, and in another you need to validate user input.
From what I can think of, your best solution is to eliminate the exclusivity of the number 1 and just allow any digit.
I did think of an alternate method, but it requires greater knowledge of CallManager an MOH sources.
Here's an example:
2 CTI Port Groups, 1 for the call to land on, and 1 for your to redirect to which has a special MOH source that plays messages to the caller.
Call comes in on port group 1
You process some info
You redirect the caller to the messages phone number in port group 2
Place Call Hold
Get Digit String (filter "1")
Success
Call Unhold
Call Redirect somewhere else
Failure
Loop Get Digit Step
EDIT: Again, I want to stress that this method requires exceptional knowledge of CallManager's ability to handle MOH. There's a lot to consider on this one.