Tried this previously with UI code as-is, and it worked OK-ish - except for the "black border" fade-in getting too choppy then, due to the simplistic way it's coded. So, likely depends on issue #1.
Something similar suggested by @chris_cz on Steam Workshop:
I would just like to add slight gradual slow down bellow 50%
Currently the "stamina low" overlay's alpha value is changed by the client as it's received from the server. This makes it somewhat "choppy" (once every 6 ticks/frames), and requires frequent updates (6 vs. 60) for the same reason.
If instead it transitioned from "previous value" to "current value" instead, according to the same curve as server-side, then its alpha can be updated client-side every tick/frame.