Which device and the SDK version are you using?
Could you try the API utilslib_delayUs(UINT32 delay)?
I am using the SDK version 1.3 with the CYW20819 eval board. I attempted using the other api, however I still came across this problem. Interestingly, I tried just using a for loop with it to force the delay time. When doing this it seems to work, but somewhat inconsistently. I checked what else is going on and it seems that it has a problem while the Bluetooth is scanning. When it has finished scanning, the multiple short delays have no problem, although a single long delay still does not work.
Let me know if you want me to try something else!
Why do you need the delay function? Could you start a timer for 1s and process your task in the timer callback?
I would totally agree, embedded devices (especially with RTOS and such) do not normally have any reason for long delays. However the device actually only has one onboard timer which is already in use, so it is rather limited for using many different timed events. It is okay though, I have found a way around it, it just seems like there is a problem somewhere in the code/stack that is making it fail when it should not.