Is there any general rule of thumb about just how many lines of code you can put inside the on_ticks() before it start hampering execution. or how long is too long a code?
https://kite.trade/docs/connect/v3/portfolio/#positions shows average_price in the response attributes, however this is not available in the Position class.
One doesn't have to subscribe for order updates on Websockets. If you are connected then you will receive order updates. You can check out the documentation here.