If you create controls dynamically, you have to recreate them on every postback. If you create the second button in the click event of the first button, it will only be created on the first postback. When you click the second button it will not be recreated, so there won't be any control to handle the click event. If the controls that you want to create are limited in number, it's easier to create them from the start as invisible controls. Then you can just make them visible to have them rendered in the page.
Despite everything, the person most likely to be fooling you next is yourself.