I did have a very similar problem (on Nexus 4) getting stuck at

2017/01/17 19:29:02 Waiting for device to enter recovery mode ...

while the phone was actually displaying the very recovery dialog with the above mentioned options, eventually resulting in

Failed to enter Recovery

I was trying for several days on and off to manually get it to boot further using one of the options on the phone or "randomly" entering flash and reboot commands on the ubuntu pc.

I also did apt-get upgrade to make sure my system wasn't the cause of the troubles.

Then two things happened: The last time I tried I did switch to the "advanced" part of the menu fast enough while the command line on the pc was still "waiting for ... recovery mode". As soon as I entered that part of the menu, apparently ubuntu-device-flash did recognize my phone was actually already in recovery mode and started pushing files:

2017/01/17 20:22:12 Waiting for device to enter recovery mode ... 2017/01/17 20:22:22 Start pushing /home/[...]/.cache/ubuntuimages/gpg/image-master.tar.xz to device 2017/01/17 20:22:22 Start pushing /home/[...]/.cache/ubuntuimages/ubuntu-touch/stable/ubuntu/mako/version-34.tar.xz to device 2017/01/17 20:22:22 Start pushing /home/[...]/.cache/ubuntuimages/pool/custom-bbb7857059393182b31ee0885e425c20ccac5f66ab9e68ffc6a7178b046f104a.tar.xz to device 2017/01/17 20:22:22 Start pushing /home/[...]/.cache/ubuntuimages/pool/device-ed6a4ed78cc7b5bd78815514cd3bb93c852f6593e0df66304f6e720684e11dc3.tar.xz to device 2017/01/17 20:22:22 Start pushing /home/[...]/.cache/ubuntuimages/pool/ubuntu-312c862adc434562d47089b8a6c9991f6774e6665cf4b303afbce77724d5cd75.tar.xz to device 2017/01/17 20:22:22 Start pushing /home/[...]/.cache/ubuntuimages/gpg/image-signing.tar.xz to device 2017/01/17 20:22:23 Done pushing /home/[...]/.cache/ubuntuimages/gpg/image-master.tar.xz to device ...

Then I was at a point when the pushing seemed to stall - something that has been mentioned in several posts here, so I waited a little bit, happy that finally the recovery mode had been recognized. After 3 and another 3 minutes two of the larger files were done pushing .

I became curious and checked the file sized of the .tar.xz-files stored in my pc's .cache directory: the two "3-minute files" were 23 and 55 MB in size. The last remaining file in that directory, however, was > 300 MB! So I knew a little more patience was required.... and rewarded:

2017/01/17 20:25:28 Done pushing /home/[...]/.cache/ubuntuimages/pool/custom-bbb7857059393182b31ee0885e425c20ccac5f66ab9e68ffc6a7178b046f104a.tar.xz to device 2017/01/17 20:28:12 Done pushing /home/[...]/.cache/ubuntuimages/pool/device-ed6a4ed78cc7b5bd78815514cd3bb93c852f6593e0df66304f6e720684e11dc3.tar.xz to device 2017/01/17 20:40:01 Done pushing /home/[...]/.cache/ubuntuimages/pool/ubuntu-312c862adc434562d47089b8a6c9991f6774e6665cf4b303afbce77724d5cd75.tar.xz to device 2017/01/17 20:40:01 Created ubuntu_command: /home/[...]/.cache/ubuntuimages/ubuntu_commands261026399 2017/01/17 20:40:01 Rebooting into recovery to flash

So the file pushing wasn't "hanging" or anything, after all, it just took its time until all the data was pushed to the phone.

Hope this helps - and will renew hopes to those who have given up in frustration after seeing the recovery dialog on the phone, but watching the tool on ubuntu (pc) fail nonetheless.