Saints are not in another dimension, they are in heaven. God is in an eternal now. Past, present and future are same to Him and so will heaven exist in the same way. People in heaven are just as alive as you and I are. Their bodies are dead, but their souls are alive in Christ Jesus.
They can hear us because they are perfectly united to the body of Christ. If I were to pinch your arm, you would feel pain. Your arm by itself cannot understand pain, it can only send a signal to your brain that something happened. You brain interprets that pinch as painful. The same thing happens when we pray to a saint. The saint cannot hear our request without Jesus. The prayer goes from us (the arm), to Jesus (the head), then to the saint, and then the saint will intercede on our behalf. If Jesus was not the central part of that process, then the saint would not know we are praying.
Think about hell. If I were to direct a prayer request to someone who is in hell, nothing would happen. That soul would not hear my request. Why? There is no Jesus in hell.
I should also mention that when a Catholic says they they ‘pray’ to a saint, we mean that we are asking a saint for help the same way I would ask you to pray for me. When a Catholic says that we are praying to God, then we are asking God to do something for us. We use the same word in two different ways depending on who we are talking to. Prayer to God is an act of worship and praise. Prayer to a saint is asking for intercession and help through Jesus.
Again, they key thing to remember is that Jesus is always the central focus of our prayers.