Today we just do milestone. You gain a level when the DM says you gain a level. The party is always equal level. Levels are always awarded at the end of a session. Hit dice rolls are then witnessed, and players are expected to do their leveling decisions before the next session. Holding up play to level your character is always considered bad form. The DM is spending a couple hours on prep every week. You can do it once every month or so.
When we did old school XP, we awarded XP at the end of every session. Frankly, it's way too easy to forget XP if you don't do it this way. Bonus XP awards were awarded immediately. With few exceptions, we still did not allow leveling to take place during a session. At the end of the session, anyone who had reached the next level could roll their hit die and was then expected to make their leveling decisions and update their character sheet before the next session.
As far as determining how much XP to give out as a DM, I'd just do some napkin math to peg where I wanted the PCs to be and how quickly I wanted them to be there there. There would be ~25 encounters in the adventure plus some random ones or boss encounters that should count double or triple, and the fighter or magic-user needs to go from 3rd level to 6th level at the end which is XX,000 XP they have to earn. XX,000 / 30 = XP per encounter. Often I'd give a big XP bonus at the end of an adventure to get them part way into the next level, and the players always seemed to love that. I'd always key off where I wanted the level of the fighter or magic-user because those are the two classes where level matters the most. If there were no single-class fighters or MUs in the party, then I imagined that there was one and estimated the amount of XP from there. A mage/thief and a fighter with the same XP have very different power levels, but at the time the game insisted that they didn't so who was I to argue?
You'll note that I didn't look at the XP in each encounter at all. I hated doing that math for every encounter, partially because I tend to ad hoc the combats so I tried to avoid it. At first players felt cheated by that so I did the encounter math and then gave a big XP bonus to put them where I wanted them for the next adventure anyways. As time went on the players seemed to care less and less, I think because they could tell I was giving out pretty fair XP or that I just wasn't tracking it tightly. I know some players want to feel like there's a strict accounting for every point of XP, but I'm just not willing to do that as a DM. It just doesn't matter that much. They're like points in "Whose Line is it Anyway?" They're made up and don't really mean anything.
In 3e I went much more by-the-book because the magic item creation made me feel like I had to, but I didn't DM 3e that much and when I did I just ran modules by the encounters listed in published adventures. Looking back I really didn't enjoy DMing 3e very much. Too much work to get to the parts of the game I liked (creating monsters, encounters, items, set pieces, NPCs, etc.).