<td style="background: url({% if widget.background_img.src %}
<img src="{{ widget.background_img.src }}" width="{{ widget.background_img.width }}" height="{{ widget.background_img.height }}" alt="{{ widget.background_img.alt }}">)">
But a major thing I notices is your quotation nesting, and the fact that you are using an image tag inside of a td tag. both of these are breaking your code undoubtably. also background images are not elements. They take on a different attributes as they become a peice of styling. Your have width, height, alt, etc. Background images cannot use the attributes. Let me clean it up a bit:
<td style="background: url({% if widget.background_img.src %}
{{ widget.background_img.src }}{% endif %});" >
I set a background url containing your if statement. if bakground_img contains src then the src is printed. a more solid way to set a background image is to set position, repeat, and size.
<td style="background: url({% if widget.background_img.src %}
{{ widget.background_img.src }}{% endif %}) center center no-repeat; background-size: cover;" >
so here is that opening td tag with the updated background image code:
<td style="background: url({% if widget.background_img.src %}
{{ widget.background_img.src }}{% endif %}) center center no-repeat; background-size: cover; font-family: 'Raleway', Gotham, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 18px; color: #FFFFFF;" bgcolor="#FFFFFF" width="600" height="393" valign="top">
A couple of rules for in-line styling, you should use proper css within the style attribute as much as possible and pay close attention to nested quotations marks. It doesn't matter if you do " ' ' " or ' " " ' but you should make sure that you aren't trying to do something like " " " " or ' ' ' ' because it will break your code in the worst way.