ブロックに押し出され空中にいても落下しません。

移動するCubeに一回り大きいBoxCollisionを設定してください

そのCollisionにOverlapしたときに、Cubeの移動力分Characterを移動させればよいです