Hi,
Depends mainly on what you want to customize on the Web Part and what it actually does.
Is it a static HTML Web Part where you want to add an additional Class on a DIV. Or do you want to update the BizzForm to Validate input with an external service and directly insert it into an external CRM.
Adding a different Layout is mainly for applying a different Skin when you replace some HTML markup. You still need the same controls as the backend code relies on it. (I always find it hard to locate such changes, e.g. when you update the Web Part later you might forget the alternative Layouts.)
Changing the code behind actually changes the inner logic for ALL usages of this web part, as well as any derived Widgets.
I would usually recommend to not Change any active Web Part or one that comes out of the box from Kentico. Rather I'd clone it as a new one. This way you can change the behavior specific to this needs, and clean out everything you don't need.