Moving the selection to the beginning of the line
Once you grasp the pattern, it's quite easy...

To move to the next/last letter -  →  or  ← 
To move to the next/last word -  Opt ⌥   →  or  Opt ⌥   ← 
To move to the beginning/end of a line -  Cmd ⌘   ←  or  Cmd ⌘   →  

Hold  Shift ⇧  whilst doing any of these &amp; it will add to your current selection if you are moving away from your original insertion point, otherwise it will remove...
...with the exception of  Cmd ⌘ , which will always add.

As you've discovered, all these functions use your original cursor point, not the beginning/end of your current selection. That would perhaps require a little mind-reading, to know which end you wanted to work from ;-)

For your specific situation, if you start with  Shift ⇧  held, then  Cmd ⌘   → , then just  →  - 'to end of line plus one character'
Alternatively, holding  Shift ⇧ , then  ↓  followed by a number of  Opt ⌥   ←  would be quicker than just  ←  - 'to middle of line below minus several words, one at a time'