I'm sorry I haven't replied back earlier. I didn't have time to look at the source code.
Here are answers to your question:
1. Yes, it would be okay to set it like that (not sure why you would want to do that though).
scan_duration is only used for the scan timer, which enables the scan callback. So changing the scan_duration will effect when the scan callback is called. Also notice that scan_window has units of slots where as in scan_duration is in seconds. Don't mix the numbers.
I'm not sure if the scan is stopped when the callback is called...
2. Whenever you start a scan, the timer will call whatever callback defined at variable blecen_usertimerCb. The default is NULL.
3. Yes, you can change the intervals by setting a new value to blece_cen_cfg, but you must restart the scan by calling blecen_Scan function.
Again, I'm sorry if this reply is really late.
But I thought if I put the info, someone else might be able to benefit from it.