By 1391 the Ottomans had the run of Thrace and, increasingly, the Balkans. They helped Manuel II depose John V and were able to order both Manuel and John VII to take part in the siege of Philadelphia. By the sounds of it the Empire had no army, no money, and no allies at that point. So why didn't Murad, Bayezit, or their successors take Constantinople until 1453?
The Ottomans under Bayezid did almost conquer the city in 1394 with a long unrelenting blockade, but this came to an end because Bayezid had to shift his attention eastwards instead when Mongols had reappeared. These were lead by Timurlane, a ruthless ruler but an experienced and competent commander, who was able to rally the Seljuks in Asia minor against their Ottoman masters and even captured the Sultan in a decisive clash at Ankara in 1402. The loss of their leader made the Ottomans descend into a chaotic civil war for almost 10 years, a breathing space which Manuel II not only used to recover both byzantine strength and territory, but also put great support behind a ottoman contender who seemed favorable to them; Mehmed I.
When Mehmed I finally triumphed and was recognized as the undisputed Sultan, his relationship with the Byzantines was - understandably - one of peaceful coexistance, this however was not to last long. Both countries shifted rulers almost simultaneously in 1421 and the new emperor, John VIII, quickly tried to destabilize the ottomans again by inciting a rebellion to overthrow the new sultan, Murad II, who in turn quashed the rebellion and countered by attacking Constaninople. This however was yet again unsuccessful for similar reasons as before; it was called off when a different rebellion demanded the sultans attention in the asia minor, and instead the two leaders agreed in 1424 that Constantinople would survive by paying a hefty sum of silver in an annual tribute.
While Constantinople remained a liability in the eyes of the Sultan and realized that one day it needed to be dealt with, both he and the subsequent emperors stayed true to their word and followed the terms of the treaty, mostly due to being overwhelmed with more pressing problems in both Anatolia and the Balkans. This peace then endured until the ascension of Mehmed II in 1451, who also followed the treaty despite wanting to conquer Constantinople one day, however quickly after Mehmed:s ascension Constantine XI threatened to incite rebellion against the Sultan, similar to what John VIII had attempted, unless given financial support and so this gave Mehmed II a good and important cause to remove the Byzantine thorn forever, which he did.
References
Mango, C. Et al. (2002). The Oxford History of Byzantium. Oxford: Oxford University Press
Jeffreys, E., Haldon, J., & Cormack, R. (2008). The Oxford Handbook of Byzantine Studies. New York: Oxford University Press.
Because the Ottomans didn't wait around doing nothing. They actively tried to take Constantinople several times between 1390 and 1453 and failed until Mehmed II's attempt.
That said, you're assumptions are pretty correct. The emperors were out of funds, manpower, and allies who could reverse their situation. Meanwhile, they were effectively vassals of the Ottomans leading up to the 1394-1402 siege. The reasons why the Byzantines could somehow survive were a mix of political maneuvering, luck, and Constantinople's geographic and topographic resiliency to sieges. And I think a great example of this mix can be found in the 1394-1402 siege.
This was the one initiated by Bayezid against Manuel II and John VII (whom Manuel would later appoint as regent/co-emperor in 1399) The reason why this siege is especially important to understanding how the city could make it through constant attacks from the Ottoman's is because it was different from the others. That is, it was not a traditional siege in which Ottoman troops would at some point storm the walls of the capital and take it over. We all know about the strength of the Theodosian Walls and Bayezid certainly did. In fact, we know the walls were still effective at this time because of the failure of the 1422 Ottoman siege, in which the Byzantines fully repelled an Ottoman attempt at the walls (though one major source, John Kananos, attributes the Byzantine victory to an intervention by the Virgin Mary/Theotokos). Instead, the 1394-1402 siege was essentially a mass blockade by land and sea meant to starve out the city.
While Bayezid ultimately did not capture Constantinople, this strategy was certainly effective and was nearly successful. Every single source covering 1394-1402 reports extreme levels of scarcity. The historian Doukas reported that the price of grain multiplied by a factor of 20 at some point during the siege, while similar trends occurred for other basic commodities such as wine or oil. We also know that Constantinople, already depopulated to at least below 50,000, faced a mass exodus because of the siege. We don't have exact numbers on this effect, but it must have only worsened Manuel II's position.
The emperor himself was also in an incredibly dire situation. He was out of money, and at one point, attempted to pawn the (alleged) seamless robe of Christ to the Venetians for grain and funds. We do know that his negotiations with the Venetians amounted to three major shipments of grain to the city, but they cannot have been sufficient enough to make a meaningful impact on the city's survivability. However, Manuel was successful in helping to organize a major attack on the Ottomans by Western European states in the form of the Crusade of Nicopolis in 1396. This crusade however, failed disastrously at the Battle of Nicopolis and could not lift the siege. At best, it probably alleviated the number of Ottoman blockaders around Constantinople for the time being, but we don't know this for sure. And this occurred in 1396, which meant that the Byzantines would have 6 more years to endure. Manuel would later leave the city in 1399 to tour Western Europe (with John VII appointed regent in the capital), but he would secure no meaningful support.
The patriarchs of the city during the siege, Antonios, Kallistos, and Matthaios likewise tried, but couldn't effectively alleviate the mass starvation. Numerous concessions were made by them to facilitate food production and distribution. One example was that they began to authorize the sale of dowries for impoverished couples and the sale of monastic properties to non-members of the church, all due to the siege. Though, there is little reason to suggest that any of these efforts helped sufficiently solve the city's food crisis.
In fact, the mass starvation seems to have persisted all the way until 1402, as agricultural property was still being purchased at exorbitant rates until the siege was lifted. Of course, the blockade would end due to only what could be perceived as a stroke of luck to the Byzantine eye. With the invasion of Timur into Anatolia and the subsequent capture of Bayezid at the Battle of Ankara in 1402. Thanks to Timur's successes, the Byzantines were able to relatively (emphasis on the word, "relatively") reverse their position. Prices of grain and other supplies appear to have very quickly gone down to normal levels and Manuel and John initiated a major building campaign within Constantinople to repair the city. Likewise, the Byzantines exploited the power vacuum left by Bayezid's capture, and were able to retake Thessaloniki and parts of Thessaly in 1403.
So, the question remains, how could the Byzantines survive an 8 year siege despite all the difficulties the empire faced? The emperors were broke, out of manpower, and their allies were not able to help in a meaningful way.
Unfortunately, the sources are not able to provide us a definitive answer, but we do have some probable reasons.
First of all, Constantinople's urban agriculture had to have been an extreme help to its resiliency. Check out this earlier comment I made for its size, but thanks to its depopulated state, the capital had an abundance of unused and arable land. As a result, the city was littered with grain fields, vineyards, and olive groves. I have seen the estimate before that Palaiologan Constantinople was effectively self-sufficient on its internal agriculture and hinterland. Though, Constantinople lost its hinterland during the blockade, and its urban agriculture could only do so much.
Another possible reason was that the blockade was not universally effective. I did mention earlier that there was a major exodus of citizens leaving the city, implying that people could avoid the blockade if they were careful, with the consequence of Ottoman capture likely being enslavement and relocation. Similarly, Manuel II himself was able to leave the city in 1399 to go tour the rest of Europe. There are even accounts of merchants who became incredibly wealthy by covertly shipping in grain which could be sold at extreme rates in Constantinople.
However, both these explanations run into the difficult reality that every source reports an extremely dark situation, implying that neither reason was particularly effective. I've mentioned grain and wine supplies to the city, but many of these external shipments had to have gone exclusively to the city's elite, given their prices. Some brief mentions allude to the trend that members of the lower class were turning to cheaper vegetables such as cabbage as an alternative to grain, but we simply don't have concrete sources or data on this.
Nevertheless, Constantinople and the Byzantines did somehow survive an 8 year siege despite the empire's condition. All of this only shows the sheer resiliency of the imperial capital and the continued capability for the emperor's to politically exploit their rivals and explains why the Ottoman's had such a difficult time taking the city until 1453.