Yes this is the best that Python offers right now for specifying the type that was used to initialize the "self" reference. It is not perfect and you are correct that it can cause "issues" when subclassing, but it is less of an issue and moreso that it adds the tedium of having to go through and manually specify the correct typing in the string.
I am not sure that improving or altering this system is a top priority. It is annoying, but it is also not going to be a concern for 99% of people who use Python regularly (not that your confusion/irritation regarding it is invalid).