I share some of the same issues, I have found that ERB templates work better than HAML for lots of data attributes.
Basecamp seems to use liberal newlines / spacing when creating html tags (like one line per attribute) so that might help.
Server-side "component partials" still don't have a great story, but view_component is one emerging option.