The body tag is unnecessary, tidy might complain but that is not the spec. The meta tag is generally unnecessary (the content encoding should be set by the server in the headers since it applies to not just HTML). The html tag is unnecessary if you do not want to declare the language of the document (which is generally a warning).
So I guess smallest without errors should be
<!DOCTYPE html><title>a</title>
And smallest without errors or warnings should be <!DOCTYPE html><html lang><title>a</title>
And then any content that is not links, scripts, meta tags, etc. will automatically be within a body after like <!DOCTYPE html><html lang><title>a</title><p>a