This is a broad topic, but it looks like ever since beta-4 or a later version of the fuel wallet, the time to simulate the transaction, etc is much much longer than previous versions.
Simple contract execution can take around 2+ minutes to simulate, provide the user with the confirmation screen, and then another large delay for actually executing the transaction.
I timed a simple operation on my webapp
Simulate - 50 seconds (pre-approve screen)
Approved - 70 seconds
Executed - 22 seconds
Leading to over 2 minutes of idle waiting.
I know this is a fuel wallet issue since all the operations are happening there and not on my webapp.