How about using ECC point multiplication and AES:
[...]
I like this scheme more because it allows to efficiently encrypt messages of arbitrary sizes.
It's indeed much more efficient
Just out of curiosity, is it possible to tweak this a bit to make the sender unable to read the crypted message?
What do you mean? Sender must know the message it is about to send.