To be able to speak the command as a single phrase you'd need a lot of permutations, as you've mentioned.
To make entry slightly more fluid, you could do something like
[North;South;East;West] [0..90]
Play sound, 'C:\Windows\Media\Windows Default.wav'
Wait for spoken response: '[0..60]'
Play sound, 'C:\Windows\Media\Windows Default.wav'
Wait for spoken response: '[0..60]'
Play sound, 'C:\Windows\Media\Windows Default.wav'
Wait for spoken response: 'point [0..60]'
Begin Text Compare : [{CMD}] Starts With 'North'
Press N key and hold for 0,01 seconds and release
Else If Text Compare : [{CMD}] Starts With 'East'
Press E key and hold for 0,01 seconds and release
Else If Text Compare : [{CMD}] Starts With 'East'
Press S key and hold for 0,01 seconds and release
Else
Press W key and hold for 0,01 seconds and release
End Condition
Write [Blue] '{CMDSEGMENT:0}, {TXTNUM:"{CMD}"} degrees, {TXT:~minutes} minutes, {TXT:~seconds}, decimal {TXT:~decimal}' to log
It'll still create some phrase variations, but hundreds rather than millions, and you'd be able to speak "North 45...10...12...point 47"; It still requires pausing, but less so than having it all as separate commands.
Not sure if you're using VR, but either way as the "Wait For Spoken Response" action doesn't provide any log feedback, I like to use a sound to confirm input was recognized (you could replace that with or add on a "Write a Value to the Event Log" action, if you prefer).
Obviously you'll have to adapt that to press the actual keys DCS expects, including typing the numbers.