Odysseus maintains his beggar disguise in front of Penelope for several reasons. First of all, in front of the suitors, if Penelope knew who Odysseus was, she would likely give it away without even meaning to. It would be written all over her face.
Secondly, Odysseus had business to take care of before he could encounter pleasure. These suitors had to be dealt with. They completely outnumbered Odysseus and his son. If they wanted to take the two of them out, in human power, they could. However, if Odysseus took care of it before he revealed his identity to Penelope, that would no longer be a necessary item on his agenda to care of.