I wonder if the efficiency gains you're going for are cancelled out by the fact that the vast majority of the energy you are putting into the capacitor can never be used?
Constant-current does not necessarily imply "inefficient", switching constant current drivers do exist.
You don't necessarily need to do this by hand using calculus (although by all means, give it a go if you want.) I'd just use LTSpice, or a spreadsheet with time divided into small chunks.
The reason that switching converters are "inefficient" at low output currents is that the driving circuitry has a certain fixed current requirement of its own, which appears as a large percentage of the input current at low output currents. But that's only a percentage, and a percentage of one particular component of your system. If you're driving the enable pin of a DC-DC converter with some sort of microcontroller to try to reduce this fixed current, it would be a mistake not to take the current consumption of the micro into consideration.
In short, don't focus on the percentage of that one component, you're at risk of not seeing the forest for the trees if you do. Define a typical usage pattern for your device, and calculate its overall battery life for various solutions. Only use the percentage efficiency of the converter to figure out how much current it uses, and be sure to integrate over time.
With all this in mind, I wouldn't be entirely surprised if a simple resistor turned out to be most efficient (sure, you're losing some energy as heat, but you're not wasting any current.) Or, if you want to have a bit of fun, and you already have a microcontroller on the board, a GPIO pin tied to an inductor + LED with the micro doing some simple switching (5mA is nothing to most micros, so most likely don't need any sort of H bridge) will make a perfectly adequate little switching converter for the LED, with practically zero extra current consumption (I mean, you already had the micro on the board, so it's "100% efficient" in some contrived sense.)