I've thought about the optimal compromise for a bit and here is what I suggest for timing SML runs:
We've found out that the initial load time between pressing start and gaining control over Mario differs between SGB2 and all other systems. The difference is 8 frames in favour of SGB2 (see the other thread for how this number was determined). However, I wasn't happy with settling for one system as a standard over the other. I also didn't want to introduce a new standard in general. Luckily, the solution is very easy and we can apply an already existing standard to SML because the current timing has already been very close to that standard all the time. I'm talking about timing character control as used by SDA. We had already used the frame on which Tatanga explodes (or any of Mario's projectiles unload, alternatively) as the last frame. That frame coincides with the loss of control over Mario as per SDA standard, meaning the end point doesn't change one bit.
On SGB2, character control starts 8 frames after Start is pressed. On all other accurate systems it starts 8 frames later than that. The time between gaining control and the ingame timer ticking down from 400 to 399 is equal on all systems, of course. The timer switches to 399 exactly 41 frames after the player gains control over Mario. That's 1 / 59.7275 ¤ 41 = 0.686 seconds. So for uniform timing I'd use the 1st frame the timer shows 399 as the start point. The end point is the frame on which Tatanga explodes. Then you just add 0.686 to the time of that segment to get the total length of the run.
Another topic is timing accuracy in general. Currently, speedrun.com offers resolutions of either full seconds or milliseconds. I'm in favour of using 1 decimal since due to encoding artifacts (we're timing encoded material from Twitch or Youtube after all and not actual game frames) it's not reasonable to give the times in milliseconds or even only down to centiseconds. I'm fine with keeping the resolution at full seconds, too.
That said, I'll leave all of this open for discussion again. So please discuss! :-)
Edit: This is mainly interesting for board moderation. Runners can handle their splits however they want. If you're running on BGB, Gambatte or GBP and want to incorporate this into your live timing then you just have to subtract 0.268s from your timer offset and half of that if you're running on SGB2. Or just don't change anything because a moderator will time your run when verifying your submission anyway. :-)
Standardised timing across all platforms is the fairest option for everyone imo. Everything else I don't really mind about.