(Edited to include new version with consideration for audio) The result of the most fertile Facebook technical discussion I've had yet. (Thanks everybody, especially Kearsley Higgins and Francisco De La Torre and Benjy Feen and Eric Landreneau and Sebastian Sylwan)
I give you Flicks!! (With deference to Tom Martinek, of course).
EDIT:
...Based on feedback from Simon Eves, who pointed out that the NTSC variations are all actually approximations of 24 * 1000/1001, and 30 * 1000/1001, I dropped support for those variations. However, I added the requirement that 1/1000 of each time unit should be represented as well, since I sometimes do simulation sub-time-steps at 1/1000 (in very awful cases). So a slight change! But now setting in stone!
Thanks y'all.