I love necroposting too much.
I'd say change the code so it's apply time is instant and improve the healing for the item.
function ITEM:OnUse(ply, target)
ply:SetHealth(math.Clamp(ply:Health() + 30, 0, ply:GetMaxHealth()))
if ply:HasBrokenLegs() then
ply:FixLegs()
ply:Notify("Your broken legs have healed.")
end
return true
end
^ I would not say 100% this but somewhere around the 30 HP mark for the item.