Disguising as a heavy is a bad idea because a medic will heal you and when confronted with an enemy, you are expected to be the first one to shoot without even moving.
As a medic, you're obviously required to heal people. Running past a person screaming Medic will certainly give it away.
Scouts... eh, a scout wouldn't be wondering around the enemy base I guess.
As a spy people are surely going to hit you to check if you are their spy or not. It always happens.
In 2fort I always disguise as a Sniper and wait downstairs the enemy base, either killing people or wait until my cloak regains, then I go demoman and run upstairs to kill the stuff there or disguise as an engineer and go down to the int room.
You can also disguise as an engineer right away but go down to the sewers. It's a bit tricky there though because as soon as an enemy sees you they will shoot you, guaranteed.