。
She stayed up late waiting for her son to come home.
Literal
She [topic-は] son [subject-が] return-home [nominalizer-の][object-を] waited-and late-until was-staying-up.
Two patterns chained. ~のを待つ ('wait for X to happen') uses the nominalizer の to package an event-clause as the object of 'wait.' Past 待って links to the next clause via the te-form. 起きていた is the past resultative of 起きる ('wake / be awake') — 'was [in the state of being] up.' ~まで marks the temporal endpoint. The whole sketches a familiar parental scene — a mother staying up to make sure her child gets home safely.