With your current command, all that should be required is to replace "3" with "2" in the second length check, and to remove "SetSingleVAVariables(airfieldData[0], "IDENT");" while having the call for "N" get the data at array index 0 rather than 1, and the call for "E" at array index 1 rather than 2.
However, if you modify your command like this:
Set text [airfield] to 'SAR1'
Clear Dictation Buffer
Say, 'ready to copy' (and wait until it completes)
Pause 0.2 seconds
Start Dictation Mode
Pause 20 seconds --------time to record numbers
Stop Dictation Mode
Set text [airfield] to '{TXT:AIRFIELD} {DICTATION}'
Inline C# Function: , wait until execution finishes
Write [Gray] '{DICTATION}' to log
Write [Blue] 'N {TXT:N0}{TXT:N1}{TXT:N2}°{TXT:N3}{TXT:N4}.{TXT:N5}{TXT:N6} E {TXT:E0}{TXT:E1}{TXT:E2}°{TXT:E3}{TXT:E4}.{TXT:E5}{TXT:E6}' to log
DISABLED - Write [Blue] '{TXT:IDENT0}{TXT:IDENT1}{TXT:IDENT2}{TXT:IDENT3}' to log
Say, '{TXT:N0}{TXT:N1}{TXT:N2},, {TXT:N3}{TXT:N4},, {TXT:N5}{TXT:N6}.... {TXT:E0}{TXT:E1}{TXT:E2},, {TXT:E3}{TXT:E4},, {TXT:E5}{TXT:E6}'
Wait for spoken response: 'yes;no'
Begin Text Compare : [yesno] Equals 'yes'
Say, 'ok'
Execute command, '[NS430 Automatic;] Airport Position automatic entry ' (and wait until it completes)
Else
Say, 'sorry about that'
End Condition
It should work without any modification to the inline function (assuming dictation is working consistently, though that applies whether you modify it or not).
You could also use a while loop to check whether dictation has completed based on the contents of the dictation buffer, rather than an arbitrary time limit.
E.G.
Set text [airfield] to 'SAR1'
Clear Dictation Buffer
Say, 'ready to copy' (and wait until it completes)
Pause 0.2 seconds
Start Dictation Mode
Start Loop While : [{EXP: {TXTLEN:"{DICTATION}"} < 9}] Equals '0'
End Loop
Stop Dictation Mode
Set text [airfield] to '{TXT:AIRFIELD} {DICTATION}'
Inline C# Function: , wait until execution finishes
Write [Gray] '{DICTATION}' to log
Write [Blue] 'N {TXT:N0}{TXT:N1}{TXT:N2}°{TXT:N3}{TXT:N4}.{TXT:N5}{TXT:N6} E {TXT:E0}{TXT:E1}{TXT:E2}°{TXT:E3}{TXT:E4}.{TXT:E5}{TXT:E6}' to log
DISABLED - Write [Blue] '{TXT:IDENT0}{TXT:IDENT1}{TXT:IDENT2}{TXT:IDENT3}' to log
Say, '{TXT:N0}{TXT:N1}{TXT:N2},, {TXT:N3}{TXT:N4},, {TXT:N5}{TXT:N6}.... {TXT:E0}{TXT:E1}{TXT:E2},, {TXT:E3}{TXT:E4},, {TXT:E5}{TXT:E6}'
Wait for spoken response: 'yes;no'
Begin Text Compare : [yesno] Equals 'yes'
Say, 'ok'
Execute command, '[NS430 Automatic;] Airport Position automatic entry ' (and wait until it completes)
Else
Say, 'sorry about that'
End Condition
That just checks whether more than 9 characters are in the dictation buffer (seven for the first section, a space, and at least one for the second section; you could check for the exact 15 characters, but then it'd keep looping if there is a character missing when the recognition didn't quite work accurately) before proceeding to process the data.