The description of Cornelius are extremely complimentary. He is godly, god-fearing, righteous, he prays and gives alms. His house follows him in this. Which, BTW, is how it is supposed to work. His prayers came to God as a reminder to God to act on his behalf!
There is a natural explanation for Peter's vision. It was right before dinner and he was hungry. It was much more, however, than hunger pangs. He was puzzled by God's insistence that he eat unclean animals.
Then, the Holy Spirit sent him downstairs, not understanding the vision, to meet strangers at the door. He obeyed first and understood second.
One interesting thing here is that God uses Peter. Why bother with him at all? The angel had already come to Cornelius. Why not just circumvent Peter, he didn't understand anyway? I think the answer is the same as it is every time. When God wants someone to get saved, he always uses another person -- always!