"Grandmother has been sleeping since half past seven."
Translation:दादी साढ़े सात बजे से सो रही हैं।
It's a tense issue.
'Grandmother is sleeping since half-past seven' is incorrect English because you can't use starting times with the present continuous tense in English. Therefore, the present perfect continuous tense (which refers to actions that were started in the past but are still in progress in the present) has been used.
Technically, Hindi also requires the present perfect continuous here (दादी साढ़े सात बजे से सोती रही हैं।) but in most cases, we just use the present continuous tense in Hindi instead of the present perfect continuous when there is no ambiguity.
दादी साढ़े सात बजे से सो रही थी। would be 'Grandmother had been sleeping since half-past seven.' which is in the past perfect continuous tense. It means that the grandmother went to sleep at half-past seven and was still sleeping at some particular moment in the past about which we are talking about. (Here too, Hindi uses the past continuous tense instead of the past perfect continuous)