My daughter took a long time, But after I stopped trying to force her to do it she came around. All children develop at different speeds and you are not a bad mom. Encourage but don't force. Good luck
He's doing fine and is on the verge of mastering this developmental challenge. Continue with what you're doing.
One of my boys was not at all interested in putting his business in a toilet. He'd do as your son does, go behind furniture to potty. Looking back, I think he did that because I probably imparted a sense of shame on him pottying in his pullup. A light bulb went off and I realized his potty training was about him, not me, or bribery, or the best encouragement, or cross words, or comparing him to siblings, etc. That just doesn't work for someone not developmentally ready, no matter the age. We finally decided to keep him in diapers, not even pullups. One day, he walked out of the bathroom, dry diaper in hand and said he went potty. That was it. No accidents ever. I would add he was almost four years old.
I completely understand your feelings of "bad mom", but those are unfounded feelings. Meeting your child where he is developmentally is being the best mom to your son.
All that said, if your son will go sans pants, I'd probably take a week or so and commit to helping him become comfortable going potty on his terms, then slowly introducing him to the idea of underwear. Take him to pick some out. Let him know he might like to wear them some day. Just keep them out, but in the package. Couple days later, let him take them out, feel them, get used to them. Remind him that he can put them on if when he would like to. He may surprise you once he realizes that you realize he's in control with this.
Good luck :)