I encountered the same issue using qpid-proton v0.29 for C++ to write a Microsoft Event Hub producer application and Microsoft.Azure.EventHubs v4.2 to write a Microsoft Event Hub consumer. The first "junk" byte at the beginning of the message body is the AMQP "embedded constructor," which specifies the format of the bytes that follow. In your screen shot, it looks like the body format is a string, e.g. "hello world". In this case, the "embedded constructor" is 0xA1, which indicates that the following bytes are ASCII and there is a variable number of them. The second "junk" byte is the number of bytes in the ASCII string. For "hello world", this would be 11. I'm not sure why the Microsoft library doesn't parse this for you. For more information on the AMQP data types and message format, see the following:
AMQP Data Types: http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-types-v1.0-os.html#section-types
AMQP Message Format: http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#section-message-format
The AMQP specification states that the message body can be of type "AMQP Value", "Data", or "AMQP Sequence". I found that the Microsoft library doesn't like it if the message body is of type "AMQP Value". The newer Microsoft library Azure.Messaging.EventHubs v5.0.1 won't even parse the body data if it's an "AMQP value". It always shows 0 bytes in the message body. I was able to fix the issue by making sure the message body created by qpid-proton uses the binary "Data" type. I haven't tried it in Python, but here is what the C++ code looks like.
proton::message msg;
std::string bodyString = "Hello World!";
proton::binary bodyBinary(bodyString.begin(), bodyString.end());
msg.body(bodyBinary);
In Python, I would try making sure the message body has the "bytes" data type and see if that works.