My son (now 33 months) was very similar. He's only in the last two or so months really gotten 'over' this completely, but we had a very similar issue around 2 where it seemed impossible to deal with.
First off, no matter how careful you are and no matter how good of an approach you have, you're going to have some failures. There will be nights when he is wild and going all over the place. That's part of parenthood, and you have to accept those - and not take them as a comment on your parenting skills. Sometimes kids have days where they just are impossible, and that's okay - focus on learning to accept those and learn coping methods rather than expecting miracles.
Our coping method on those days was, largely, taking him back downstairs to play some more. It sounds like it's giving in, and in a sense it is; but it's also admitting that perhaps we made a mistake trying to put him to bed earlier. Or, maybe, he just needed a push of the 'reset' switch - which I think often was the real answer.
We spent long enough upstairs that it wasn't an immediate reward for wildness, and if he did go downstairs it wasn't to play with us - if he wanted Quality Time, it was in a calm bedtime ritual and not in playtime - but sometimes we just gave in, and I think that's okay. If he's running about and making everyone miserable, don't try to force it. This is a phase and he will learn to control it, over time. Ours took about six months to completely stop having these, but since about 27 months we haven't had anything like that, and since about 30 months he has been able to go to bed with no problems at all.
How we got to that point was pretty stressful at times, but it was also pretty simple. We stuck to a ritual:
- Change diaper/PJs
- Brush teeth
- Read books
- Lie in bed
- Turn of lights
- Sing songs
- Sleep
All of these had to be done calmly - any wildness during any stage ended that stage until he calmed down. All of these things he enjoys and wants to do (thanks, fake sugary non-fluoridated toothpaste!), except for the lie down bit of course, and so it was fairly easy to wait for calmness. In particular, the rule with singing was always that he had to be lying down - songs stopped if he sat up or stood up.
Further, we tried to get him to have some choice in many of these things - that increased the buy-in. He picks his PJs, he picks his books, he gets to turn the light switch (it is over his bed), he picks the songs. We also got from Grandma's house an old turtle light (one of those sort-of-stuffed turtles with a plastic top and holes in it, that lights up the ceiling with a bunch of stars, and plays music). He gets to turn that on, right when the lights go off. That helped a lot - not sure if it was coincidental with other improvements or if that was a specific help, but things improved a lot when that was introduced.
In addition, we stopped trying to deny him 'delaying tactics'. For a while we would aggressively deny delaying tactics, such as a drink of water or similar things that from other kids I've known are generally short-term delaying tactics. I think now that he used these as comfort/control elements. Perhaps potty training will be complicated by the water, but now that he has a cup of water near his bed, he stands up, has a drink, and lies back down easily. Allowing him to feel he is in control of the process really helped a lot.
Finally, we started paying attention to his sleep schedule more. He no longer takes naps unless he needs them - about 1 day out of 2. Days where he's obviously tired, he naps, other days he doesn't; that's okay, and it makes bedtime work better. We also are careful not to put him to bed before he's ready. 10pm bedtimes are common, especially on nap days, but that's okay - he's getting enough sleep, and that's what's important. And if he had a really wild day, we gave it an hour or so, and then went back downstairs. Maybe we were wrong about his tiredness, or maybe he needed a reset.
Now, at 33 months, he goes to bed most nights with zero trouble, and in fact usually asks to go to bed before we tell him he has to. I don't know how much of that has to do with what we did above, and how much is just maturation; but I know that doing all of that helped us survive the really stressful periods. We tried a lot of what you said in the question - holding the door, putting him back in the room over and over again - and none of it helped. I think that holding the door probably hurt some, as it took away control from him of the situation, so he was more stressed out by the process. When we stopped doing that, not too long after the really really crazy periods stopped. Being more at peace with our child's behavior, and not trying to hammer him into the square hole he obviously wasn't, is what ultimately helped.