まだ、ボールがパドルにめり込んでスタックするというバグが残ってるよね
反射の処理が冗長な割に正確じゃないのよね。思い切って書き直したほうがいいと思う

if パドルの上端(上半分)に接触 then vy=-abs(vy)
if パドルの下端(下半分)に接触 then vy=abs(vy)

ってなふうにad hocに書いたほうが妙なバグに悩まされずに済むよ