Problem with WaitExten() function in Asterisk 11.16.0

I try to add three Wait function to my dialplan at a SIP account in this way:

exten => 1251,1,Wait(3)
   same => 2, Dial(SIP/1251,20)
   same => 3, Answer()
   same => 4, WaitMusicOnHold(5)
   same => 5, WaitExten(6)
exten => 2,1, Playback(digits/2)

What I want to make is to dial 1251 number after waiting 3 seconds(this part works), after that I want to answer and wait another 5 seconds with music(from that part nothing works), and finally to wait for an exten for 6 seconds and for example to enter 2 and playback 2 digit.
The WaitMusicOnHold application works, I’ve tested only this application at another account.
The main idea I have with 1251 SIP account is to integrate all 3 wait functions, Wait,WaitMusicOnHold,WaitExten when it is called.

After Dial function nothing gets executed unless dial ended with error or you added the g option to it. Anyways your answer does not answer your call to the very same exention you re already inside means you have wrong theory in your head abt dialplans

Dial supervises the call as well as dialling it. It does not return until the call is completed or has failed. It answers the incoming channel, if the outgoing channel answers.

It’s not clear why you are doing this and to which side the music and playback should be sent, so I don’t know whether the best solution even uses dial (with various options) or requires originate.