As far as I understand timescale should be completely dividable by fps to have exact timestamps.
Microsoft Smooth Streaming uses timescale 10M by default which is leaked as hardcoded value in various smarttv clients and packaging tools thus limiting video fps to 25 and other dividers of 10M.
How is it possible to package 24 fps video for mss clients which support 10M only?
For video at 24 fps, your fragment duration will not be an integer. The easiest way is to round down the number and to find a closed loop pattern that will average out to your GOP duration.
For example for 5/3, you really want to express 1.66666666..... So a good pattern will be [1.6666, 1.6666, 1.6668]. So over 3 fragments you will show the duration of 5 seconds in the manifest.