So finally i have resolved the issue. so instead of using
import { useSendTransaction } from "thirdweb/react";
use the following
import { sendAndConfirmTransaction } from "thirdweb";
sendAndConfirmTransaction waits for the transaction to approve and then moves forward and that allows the proper waiting and then the transfer function goes well.
use it like as follows
await sendAndConfirmTransaction({
transaction: tx,
account,
});