My Approach
I have always required training time, but I have also often run into the problems described by MerricB and others. My current approach is somewhat similar to Shilsen's.
I have my characters train *before* they earn a level, and I allow them to train up to 3 levels in advance.
In my system, the players are asked what they want their characters' to learn in the next few levels. A tutor NPC can be found, and will charge basically 10 gp per level per week to teach something to the character. Multiple things studied from the same tutor (like a skill and a feat, or multiple skills, or a new spell level and a feat, etc.) add 5 gp per level per week to the training cost.
Time required is based on the longest time (usually 4 weeks for a feat) + 1 week per additional "course".
Institutions/organizations offer training "packages": 3 levels of 1 core class, including skills, feat(s), bonus feat(s), new spell level(s), and class feature(s). The training package also concentrates the time, cutting it down to 2/3 the time required to take them all separately.
This approach lets me have my NPC mentor/contact list, and it solves the verisimilitude problem of "instant leveling" (at least for me). Because the PC has already studied the "theory", the gaining of XP in the dungeon shows when s/he "gets it" fully.
I award XP between sessions, often in mid-dungeon. I have always awared the XP between sessions (from 1st Edition on), but 3rd Edition seems to be geared around expecting that approach, and expecting the characters to gain 1 or more levels in mid-adventure. Naturally, not all styles will match with that, but I find my players enjoy it more.