O problema aqui é que o que você está fazendo inicialmente é sobre configurar shells interativos e trabalhar dentro deles. A linha source ... não é executada até que a linha sudo seja concluída, elas não são executadas no mesmo contexto no script.
Para fazer isso, o que você provavelmente deve fazer é colocar apenas as linhas source e hass em um script e em rc.local run su -c /path/to/restart.sh homeassistant
Como rc.local é executado como root, você não precisa da sudo part