Interfacing Arduinos

I've got a project which will have lets say 50 Arduinos, all connected up to a single computer. Each Arduino will have rather simple devices connected to them e.g. LEDs, buttons, switches, stepper motors/servos, pots.

USB is all well and good, but I've had and currently have problems with USB devices. They drop out, they fail to recognise. If you connect a lot of them, they become unreliable also - but I'm hearing that this is mainly due to insufficient power supplies, but the former problem that I described and experience first hand is none the less enough for me to want to avoid USB.

Ethernet has problems also. Firstly, if I just want to turn on just 1 LED, i.e. manipulate a simple bit, I need to send a complex signal with massive overhead like a header etc. Using ethernet to communicate with just 1 LED is very inefficient. Secondly, I'm reading Ethernet on an Arduino drops out also due to problems with the Wiznet chip.

So my question. What alternatives are out there for interfacing a lot of Arduinos which will be controlling rather simple devices?

EDIT: I guess a lot of what I'm asking depends on the API for Arduino. Ethernet and USB are obviously already in there, but I'm guessing other methods are not available since there's no API functions for anything other than these two?

There are many more ways to do that.

What about a cascade via serial ? Perhaps it is called a linked-chain. However, if the line is broken, then the rest of the Arduino boards can not be reached.
With a cascade I mean to use a serial port and split the RX and TX. The RX receives data from one side and copies that to the TX that goes to the other side. Perhaps it is even possible to make a ring. Each board checks if there is a command in the stream of data for that board.
The Arduino Leonardo or (Pro) Micro has a spare hardware serial port that can be used.
This had been done a number of times, someone has probably made a library for it.

The RS-485 can connect 50 Arduinos. But 50 is a lot, I don’t know how reliable it will be.

Wireless is a good option: Adafruit has the Feather series. The ARM Cortex M0+ processor with RFM69 seems a good combination in my opinion: Adafruit Feather M0 RFM69HCW Packet Radio - 868 or 915 MHz [RadioFruit] : ID 3176 : $24.95 : Adafruit Industries, Unique & fun DIY electronics and kits

The RadioHead has great options for a reliable ‘net’ of wireless modules. The RadioHead library uses too much memory for basic Arduino boards, you need the ARM Cortex boards, like the Arduino Zero, Arduino M0, Arduino Due.

This is what I can think of at this moment. There must be more.

not used Arduinos for such an application but have used PIC18 and PIC24 microcontrollers using Ethernet communicating using UDP datagrams - the systems ran for years monitoring and controlling machines in factories