The most obvious thing you're doing wrong is using the minimum \$h_{fe}\$ in your calculations. That is, starting from a given value of the base resistor R, you find the LED current I by solving \$I = h_{fe} \times (V_{out} - V_B)/R,\$ right? So using the minimum \$h_{fe}\$ only tells you the minimum I which your resistor will produce.
From the data sheet, the maximum \$h_{fe}\$ of a 3904 is 300. Using your own equation for a base resistor suggests an LED current of 2 mA, which is certainly enough to light the LED.
The second most obvious thing you're doing wrong is actually more serious: you don't seem to know what "saturation" means. Look at the second graph in Spehro's answer. You'll notice that the collector voltages involved are very low, less than 0.15 volts. Granted, the particular numbers involved depend on exactly which transistor you're using, and exactly what current you're interested in, but his graph is obviously appropriate for your concerns.
Once you understand what saturations means, the graph ought to suggest a very quick test to determine if your transistor really is saturated: short it out and see what happens to the LED brightness. If the 2N3904 really is saturated, it will have a voltage of about .1 volts across it, and the voltage across the LED/limit resistor will be about 4.9 volts. Shorting out the transistor will increase this to 5 volts, with a very small increase in current (and therefor a very small increase in LED brightness). In your case, you will see a large increase in brightness, and this will tell you that the transistor was not actually saturated - it was just producing small amount of light from the appropriately small current produced by your choice of base resistor.
Before you do this, though, you need to address the third (possibly) obvious problem with your setup: your LED resistor. Let us, for the moment, assume that your LED has a forward voltage of 2.5 volts. Then, with 5 volts across the LED/resistor combination, there will be 2.5 volts across the resistor. This will produce a current of 33 mA. This is not a killer all by itself, but you stated that you were expecting 20 mA. Unless you are using an LED with a forward voltage of 3.5 volts. This is certainly possible, and occurs with superbright greens and blues, but I'd have thought you'd notice the reduced brightness from your LED. If you really are using an LED with a 3.5 volt drop please disregard this comment.