First, I don't know where you're getting your numbers. The BTC network hashrate is about 19.5 EH/s, not 4.29 EH/s.
https://blockchain.info/charts/hash-rateAlso, jtoomimnet p2pool's hashrate is about 5.6 PH/s, which is a lot better than mainnet's 1.5 PH/s
If mainnet p2pool's hashrate is 1.5 PH/s, and BTC's total hashrate is 19.5 EH/s = 19500 PH/s, then mainnet p2pool has a 1.5 / 19500 = 1 in 13,000 chance to mine each block. Each day we get 144 blocks, so mainnet should see on average one block every 13000/144. = 90 days.
Until we find a block they will find one and every time we have to start from the beginning, so how do we ever get one...
"The beginning" isn't the right way to think about it, because there is nothing except "the beginning". There is no progress to abandon. Every hash you do is starting from the beginning, and you finish a nanosecond later. Most attempts are failures. Each time someone has a successful 1-nanosecond-long attempt, they get the block reward.
Everyone is rolling dice. Some people have more dice than others, but it doesn't matter. The first person to roll a 1 on a 1,000,000,000,000-sided die wins that round, and then everyone walks to a new table and starts again. Your chance of winning is proportional to the number of dice rolls you make.
Periodically an error occurs
2018-01-27 12:29:00.936674 Generating a share with 748899 bytes, 2907033 WU (new: 719273 B, 2789186 WU) in 485 tx (385 new), plus est gentx of 2552 bytes/10244 WU
2018-01-27 12:29:00.936831 Total block stripped size=722010 B, full size=751531 B, weight: 2917517 WU
2018-01-27 12:29:00.997316 Generating a share with 748899 bytes, 2907033 WU (new: 719273 B, 2789186 WU) in 485 tx (385 new), plus est gentx of 2552 bytes/10244 WU
2018-01-27 12:29:00.997447 Total block stripped size=722010 B, full size=751531 B, weight: 2917517 WU
in handle_share_hashes:
Traceback (most recent call last):
Failure: twisted.internet.defer.TimeoutError: in GenericDeferrer
Sometimes once a minute, sometimes less.