Like many things, it depends. Can you share your use case? What is your latency tolerance? Something else to consider is security.
For your option #2, I’ve been thinking about building a server that will accept requests from client and server (netduino) and proxy messages between the two via web socket. Unfortunately, I don’t have anything concrete yet to share with you.
Another thing I’ve been exploring is Azure Iot Hub. I haven’t been able to play with it extensively, but I’m excited about it.
Lastly, how are you building the web server on your netduino? Maple is a lightweight server built specifically for the netduino which might be a good option for you.
From memory the N3 WIFI chip can only support 8 TCP/UDP or 2 TLS sessions concurrently so inbound connectivity from the wild wild web can rapidly go bad.
I have a couple of nRF24L01 on RPI2/3 (AdaFruit.IO & Azure IOT Hubs) & N3Wifi (AdaFruit.IO) based field gateways for *duino devices (currently telemetry only) which might not work for your application
A watchdog fitted to the Netduino based field gateway helps a lot with uptime…
I was looking at adding support for commands to the next version of the two Windows 10 IoT core based field gateways and doing LoRa versions as well.