Solution 1:

TL;DR there was a permission issue with ~/.cache/upstart/dbus-session, rm -rf .cache/upstart and a reboot solved it.

Newbie debug insights for future readers (which may well include me).

The ~/.xsession message I mentioned in the question, along the lines of

init: dbus pre-start process (PID XXXX) terminated with status 2

was actually very important. I learnt what it meant while investigating, I found it this way

  • First, I thought that the issue was with kde, so I tried to find how lightdm started kde
  • I tried to look into /etc/lightdm/ (as suggested by man lightdm) but the lightdm config files were not here but (I found it by looking into /var/log/lightdm.log) in /usr/share/lightdm/lightdm.conf.d where I found the relevant file /usr/share/lightdm/lightdm.conf.d/40-kde-plasma.conf
  • According to it, what lightdm started for kde was the script /usr/bin/startkde, so I added some debug echo 'startkde is at line ##' > /home/evpok/delog lines to it to see where it failed, but none of them were executed.
  • checking again /var/log/lightdm.log I saw the line
    Running command /usr/sbin/lightdm-session /usr/bin/startkde
    so I looked into usr/sbin/lightdm-session, to which I again added debugging echo lines
  • After some fumbling, I found that the issue was with loading an Xsession script: /etc/X11/Xsession.d/99x11-common_start. So I looked into that one. It seemed to load normally and had only one line exec $STARTUP. Adding an echo to see what was in $STARTUP I found it was init --user. Now I didn't want to mess with init so I just traced its outputs by commenting this line out and adding instead
    exec init -v --user > /home/evpok/initlog 2> /home/evpok/initerrlog
  • Looking into these logs, I saw this message in initerrlog

    dbus pre-start process (PID XXXX) terminated with status 2
    but I still didn't know what to make of it, so I looked into initlog and saw
    Loading configuration from /usr/share/upstart/sessions

  • I looked into that dir, where I saw a startkde.conf. After some looking into documentation for upstart job confs, I saw that it had
    start on started dbus and xsession SESSION=kde-plasma
    obviously that was why startkde didn't start. It needed dbus, which had an error, so I looked into dbus.conf
  • There, there was a pre-start script stanza, hey! That's what's in the errlog of init and in .xsession-errors. So for I added again some echoes, to find that the issue was at the line
    echo "DBUS_SESSION_BUS_ADDRESS=${DBUS_SESSION_BUS_ADDRESS}" >$HOME/.cache/upstart/dbus-session (Not one of my debug echoes)
  • After some fumbling, I found that I couldn't touch the non-existent file ~/.cache/upstart/debus-session because of a permission issue. I tried creating it under sudo and chown it to me with appropriate permissions but it didn't work. So I just rm -rf'ed .cache/upstart.
  • After a reboot, everything worked as expected.

After all I just needed to stop being afraid of the internals and getting my hands dirty.