I think the problem is on how you have EnhSim setup on dealing with recasting Flame Shock. You have this currently in your config.txt file:
cast_fs_only_if_dots_left 0
Which is telling EnhSim to only recast Flame Shock after it has already fallen off. Given that it's so low down in the priority list, it's not surprising that you are having lower uptimes than you expect. I would change that value to at least 1 to give yourself at least a couple of GCD's where you can refresh the dot. Refreshing the Flame Shock dot with only one tick left should just extend that tick, so you shouldn't clip any ticks and waste potential dps. The default config.txt uses 3 for this setting without seeing any adverse effects on dps.