"In general, Bitcoin transactions usually take from one to one and a half hours to complete."
As stated by stompix, this is wrong,
Take note that it's even possible that a transaction is never confirmed and that's why you should never accept unconfirmed transactions.
The sender can spend the same coins in another transaction and invalidate the transaction you received.
I thought BTC was fast and quick. Why is it taking so long? Is there foul play?
Miners prioritize transactions based on their fee rates.
The more fee rate you use for your transaction, the faster it can be confirmed.
If you use a low fee rate for your transaction, it would have low priority and since more and more transaction with higher fee rates will enter the mempool, it's possible that your transaction stay unconfirmed for a very long time.
He can replace them, basically use the same funding address, use a higher fee and send the coins somewhere else, so your tractions will become invalid as they have no more source money, to keep it as simple as possible.
Just to be more accurate:
Same coin(s), not same address.