So far this is really nice and I can see how this can be helpful.
One suggestion possibly changing how the delay works as I found doing something like 60 seconds causes a conversion error.
Msg 241, Level 16, State 1, Procedure spGetKpi_Top14, Line 105
Conversion failed when converting date and/or time from character string.
change to
SET @sDelayDuration = CONVERT(varchar, DATEADD(ms, @iDelay * 1000, 0), 114)