Powering Arduino Uno from 5V pin, what exactly is the voltage range/tolerance?

Unfortunately there is no one "clear cut" answer for all you ask.

There are some hard limits, though, which you can get from the main chip's datasheet:

Operating Voltage: 1.8 - 5.5V

But that's not the whole story. The minimum voltage depends on the clock speed of the chip, as shown in this graph:

enter image description here

But wait, there's more. The Arduino also contains a 3.3V regulator which is fed from the 5V supply. That will have a minimum voltage above 3.3V that it needs to maintain a 3.3V output. So if you want to use the 3.3V regulator then, according to the datasheet for the regulator (LP2985-33DVBR):

3 Description
The LP2985-N low noise linear (LDO) regulator delivers up to 150mA output current and only requires 300mV dropout voltage of input to output.

So a minimum of 3.3 + 0.3V, or 3.6V.

That gives you a usable range, clock frequency permitting, of 3.6V to 5.5V.

As to how to protect the Arduino from a power-on spike like you describe - you could:

  • Add your own extra regulation in the form of a 5.1V zener diode.
  • Add a dummy load which the Arduino can switch out of the circuit once booted up
  • Change your source to something with better regulation
  • Ignore it - the regulation with even a light load will be considerably better than open circuit. Add a resistor across your supply that would draw much less than 60mA and measure the voltage. See how bad the regulation at low load is.