Hi, for 1) if you really want to be sure about your order create a second column with the same CASE WHEN but returning a value (number) you use for sorting. You then make this column as hidden and add it just before the real column with the 12am-8am etc. values. In that way sorting on that numeric hidden column your sorting will always be fine.
For 2) depends what does these things means for you ... It's your business which is supposed to tell you how to calculate things.
We can of course give you random answers on the business rules you can apply to your column but I guess your business users will probably disagree...
#2 - use of information drives physical design ... why not have the values already calculated and stored at the intersection of timeofday and duration -- these should be dimensions which drive the grain of your fact table