“Maintain …” is not the same as “proceed on course”. “Proceed on course” must be an FAA phrase, I believe it has the same meaning as the ICAO “own navigation”?
Example:
KLM 123 for separation, maintain present heading.
KLM 123, own navigation EEL.
Although its more common to receive a “direct to” as “own navigation” means you don’t need to proceed in the shortest direction.
KLM 123, direct EEL.
The point is, ATC does occasionally clear you to maintain something you already have which could be present altitude, heading or speed. But the MSFS phraseology is wrong.
Present heading → indicating transfer to whatever procedure or airway you are currently flying to radar vectors. The phrase “maintain present heading” is correct in this case. Its common practise to report the present heading for further vectoring by ATC.
KLM 123, maintain present heading, vectors for ILS approach runway 27.
Maintain heading 360 degrees, KLM 123.
Present altitude or level → the only situation I can think of is being cleared to follow the lateral part of a procedure but not cleared to follow the vertical part yet or only to a certain altitude. The phraseology used here should be “maintain altitude … ft”, thus the cleared altitude or level is repeated. “Maintain present altitude” is not a phrase used in (ICAO) RTF.
KLM 123, cleared … approach, maintain altitude … ft.
KLM 123, cleared visual approach runway 27, maintain altitude … ft, expect descent shortly.
KLM 123, maintain altitude … ft until on final.
Another example is this category is asking for a higher / lower level with traffic above / below, again the currently cleared altitude or level is repeated.
KLM 123, request climb FL350.
KLM 123, negative, maintain FL330, traffic above.
Present speed → if ATC wants you to maintain present speed, they would likely ask you what speed you are currently maintaining and then clear you to maintain that speed.
For example:
KLM 123, report speed.
Speed 250 kts, KLM 123.
KLM 123, maintain speed 250 kts.
Conclusion of a long story, “maintain present heading” is a thing (after which you should receive vectors of course and not having to ask for the next vector yourself ), “maintain present altitude” is not a thing.