-------------------------------------------
> ます is present/future and ています is present continuous,
First, I don't think so.
I think Japanese verbs are based on the concept of 'ASPECT' , not of 'TENSE'.
>but I am having trouble understanding how they are used in the context of habit/habitual actions.
The trouble like that can happen when you try to understand Japanese verbs with tense concept.
Extremely saying, Japanse verbs has no time/tense, even though it appears to have.
-------------------------------------------
*** ASPECT:
- concept A: "completed, fixed, convinced."
vs
- concept B: "not completed, not fixed, not convinced."
-------------------------------------------
*** 起きます : The (B) above.
-> 起きます can mean 'habit (=what you do usually/always)'
because 'usually/always' covers the past, present and future.
Covering all the time also can mean "it is timeless"., ”not fixed at certain point of time".
So you can apply the concept (B)
-------------------------------------------
*** 起きています = 起き + て + い + ます
て : This particle indicates the concept (A)
something is fixed.
います = いる:
The verb いる means "staying for a while", the concept (B).
(※ if you say "いた", it is the concept (A))
then ています/ている means "Fixed then continue ( for a while)"
「毎朝七時に起きています」
-> The action of "waking up every morning at 7" has been fixed (a short time before in the past) then continue (for a while in the future).
This covers the short period of past, present and future, and can mean "(recent)habit"
-------------------------------------------
+++ 毎朝七時に起きます。
-> long time habit.
「私は毎朝必ず7時に起きます。小学校のときからそうです。私の変わらぬ習慣です」
The reader can be sure that the speaker will keep waking up at 7 in the future, maybe as long as the speaker is alive.
+++ 毎朝七時に起きています。
-> recent habit.
「私は最近、毎朝7時に起きています。早起きは気持ちがいいですね!」
The reader is not sure whether the speaker will waking up at 7 a year later.