You seem to be comparing apples with
oranges giraffes for your light levels. The great advantage of the frequency output TSL237 is its dynamic range. The TSL257 will only handle 3uW with its output range of 0 to 5v, with the reference 2v at 1.54uW in the middle. The TSL237's equivalent output at the same irradiance is around 4kHz (2.3kHz/uW), while its max output will go to 500kHz min, 1MHz max, so a much larger maximum light signal. I'm not sure where you get your base frequency of 1MHz and noise level of 0.1Hz from (are you confusing 0.1Hz dark output with a noise level?), not in the data sheet I've downloaded. I strongly suspect that the effective noise of the 237 will be broadly equivalent to that of the 257 under the same illumination. If you want to use 500kHz output from the 237, then you need light levels 100 times those for the 257.
Generating a square light modulation and then trying to count pulses will be doomed to failure. If the 237 was sine or triangle output, you could read it with a fast ADC and estimate phase at the light change times. As it's square wave output, you have approaching a cycle uncertainty every time the light pulses on or off, which adds a huge amount of noise.
Your best bet is to use the traditional 'lock-in' amplifier, or something equivalent in DSP. That is, you generate a square wave modulation to your light stimulus (square gives you slightly higher modulation power for the same peak power than sine wave), then continue as in your suggestion (1).
The 257 suggests a noise density of 7uV at 1kHz offset, staying pretty flat to lower frequencies. If we compare that to the middle output voltage of 2v, that indicates that with a 1kHz modulation, the 1Hz SNR is about -10dB, so you'll need 10s averaging to get to tangential sensitivity for 1ppm, and 100s to get to 10dB SNR.
One other thing the 237 appears to have going for it is its response time, 1uS + 1 cycle, instead of the 160uS 10/90 response of the 257. That could work in your favour if the noise level turns out to be lower at higher modulation frequencies. There may be a way to 'count' the frequency suitable for synchronous demodulation. If you low pass filter the output square wave, then ADC the output fast enough to obtain 5 or so samples on each sloping edge, then you will be able to fit to those samples to nail the edge timing down to sub-sample resolution. The more bits you can use, the better will be your timing interpolation. If you then identify the cycles that correspond wholly to one or the other light level, and ignore those that straddle them, you might get a reasonable measurement you can average synchronously. Whether the noise level you get is better or worse than the 257 is a matter for experiment with a real 237 and digitiser. If you capture data with a digitising oscilloscope, you will be able to estimate timing off line, before implementing any DSP.
Aside from the specifics of these detectors and use with synchronous demodulation, counting methods can work well, as long as you use ADC and DSP to do phase/timing estimation, rather than the niave counting edges in a gate time.