It seems to me I've finally understood the way duration is expressed in English.
You're evidently on the way, but unfortunately it does get a bit more complicated!
If a verb has no sense of completion such as, 'to rain' or 'to play' or 'to walk', we can use either the past simple or the past continuous (the most common is the past simple).
Generally, yes, but it's not quite so simple. You can in fact use
play and
walk with a sense of completion. Look:
I walked to work yesterday.
Tottenham played Marseille in the UCL last night.
Nobody is going to think you walked only part of the way to work or that the football match didn't finish. The meaning comes from a) the context, and b) the listener's understanding of how the world works. Here's another example we had recently on the forum:
I went home and read a book.
There are two ways you could interpret this sentence. First, (a 'telic' interpretation) that you read the whole book and got to the end, and second (an 'atelic' one), that you read only a passage from the book.
(Also, it's not quite right what you say about the past simple being the 'most common'—rather, it's the most
simple. That means that you'd need a special reason to add continuous aspect to the sentence.)
But if a verb has a strong sense of completion such as, 'to build' or 'to finish' or 'to die' the only way that we can show duration using that verb is the continuous aspect.
That's not strictly true. You can also show duration by using a duration phrase, such as
for half an hour. (See below)
I have the only problem, how to tell if a verb has a strong sense of completion?
In other words: how to tell if a verb is like 'to rain' or 'to build'?
You have to understand the meaning of the sentence as a whole, by interpreting it in context.
Are these two sentences fine or should they be in the past continuous?
Yesterday I read a book for half an hour.
Yes, this is fine, as we've already suggested. The durational phrase
for half an hour tells us that you don't mean to say that you completed the book. In other words, the sense of the verb
read is telic, because of
for half an hour. You'd need a special reason to use the past continuous there.
My grandfather learned English for only three months.
Yes, for the same reason.