Please make sure your database connections are not getting throtled. When throttling occurs you usually see connection timeouts and poor performance.
The following query tells you when you need to scale up.
SELECT
(COUNT(end_time) - SUM(CASE WHEN avg_cpu_percent > 80 THEN 1 ELSE 0 END) * 1.0) / COUNT(end_time) AS 'CPU Fit Percent',
(COUNT(end_time) - SUM(CASE WHEN avg_log_write_percent > 80 THEN 1 ELSE 0 END) * 1.0) / COUNT(end_time) AS 'Log Write Fit Percent',
(COUNT(end_time) - SUM(CASE WHEN avg_data_io_percent > 80 THEN 1 ELSE 0 END) * 1.0) / COUNT(end_time) AS 'Physical Data Read Fit Percent'
FROM sys.dm_db_resource_stats
--service level objective (SLO) of 99.9% <= go to next tier
When avg_log_write_percent is at 100% or near 100% then throthling occurs.
In addition, verify you connect to Azure SQL Database specifying "Encrypt=Yes" to speed up the connection.
Another thing you need to consider is that functions go into a "cold" state after five minutes of inactivity except when using premium plans, and when they come out of the cold state you can expect up to 10 seconds. Some performance issues have been reported when functions load large external libraries, so try to consolidate them in one file.