@tele_player, that function call is performed in a loop that runs when audio isn’t processed, your optimization would make no difference, because this code makes multiple idle calls until timeout is reached. Moreover, millis() function would just return results of HAL_GetTick() which will likely end up inlined by compiler to return tick counter variable.
Any sort of noticeable optimization should be done in per-sample processing code in first place - probably starting with using LUT for exponential.
Other than that, congratulation to @TGargasz for making a finished project! If you’re into guitar effects, I think that an interesting direction could be porting some of the Faust patches made for Guitarix. You should be able to run emulation of various cabinets or pedals, but it won’t work with Arduino.