1. A terminal for providing a user interface for supporting interactive media services, comprising: a memory configured to store data; and a processor, coupled to the memory, the processor operating on data in the memory; wherein the processor is configured to provide: a first application, operating at a first layer, for supporting a first type of service and for communicating with a first server at a headend supporting the first type of service; a second application, operating at the same first layer as the first application, for supporting a second type of service and for communicating with a second server at a headend supporting the second type of service, wherein the first application and the second application communicate, but execute independently; a first application message queue, coupled to the first and second application and operating at the same first layer as the first and second application, for receiving messages from the second application and for receiving and forwarding messages to the first application, a second application message queue, coupled to the first and second application and operating at the same first layer as the first and second application, for receiving messages from the first application and for receiving messages from and forwarding messages to the second application the first and second application message queue passing control between the first application and the second application using messages; a root application, coordinating communication between the first and second applications and lower layer resources, the first and second application executing on top of the root application; wherein the first application and the second application each implement a wait state and an active state set by triggering events, and wherein the processor presents a user interface on a display for the first application and the second application, wherein the first application and the second application transition from an active state to a wait state in response to an exit triggering event and when the first and second application do not properly respond to a message polling a status of the first and second application, state status being communicated between the first and second application using the first and second application message queues, and wherein the first application executes in a foreground mode when in an active state and the second application executes in a background mode when in a wait state, the first application in the active state assuming control of a user interface and the second application in the wait state defers responding to events to the first application in the active state; and wherein the processor receives user input for controlling the first and second applications via the user interface and for transitioning the first and second applications between active and wait states; and wherein the first and second applications consist of applications selected from an interactive program guide (IPG) application and a video-on-demand (VOD) application.