I know it's not the answer you're looking for, but you just need to pick one and implement it, because "it depends". Better answers will suggest that you optimize after the (working) code begins to create performance problems, by profiling both methods. Profiling is the only way to non-subjectively answer which is "better" and precisely how/why. Your game may already run at 1200 FPS using either method. You might also find that by moving a single
Map(...) call down a few lines, the bottleneck is diminished or eliminated.
As an example, the memory footprint, alone, of 1000 lights using method 1 may be astronomical, impractical and, not to mention, impossible. So, if you plan to implement 1000's of lights, the design requirements may have already chosen "NOT method 1" for you. Since we don't currently know the limits of what you might implement in the finished product, we can't say which will definitely be better.
Don't Repeat Yourself (DRY) tells me not to create a ton of identical buffers so I, personally, would almost always opt for method 2.