To answer your statements/questions:

1 & 2: I've had to manually toggle the tracking off then back on to get the mount to track after a slew. Otherwise the indi driver's state shows that it is tracking, but the mount actually isn't.
3: The code in Ekos seems to always check to see if the mount is tracking before sending a command to start tracking. It is always wrapped in an if statement like this one:

                if (currentTelescope && currentTelescope->canControlTrack() && currentTelescope->isTracking() == false)
Since the driver thinks the mount is tracking, it doesn't send the command.
4: Not sure about what the indi specification says, but the driver code itself as currently written DOES assume the mount will start tracking, and sets its internal state to SCOPE_TRACKING.
        case SCOPE_SLEWING:
            // are we done?
            bool slewing;
            if (driver.is_slewing(&slewing) && !slewing)
            {
                LOG_INFO("Slew complete, tracking...");
                TrackState = SCOPE_TRACKING;
5: This patch is only run when the scope is finishing a slew command, not a park command. Here's some more context around the patch:
    switch (TrackState)
    {
        case SCOPE_SLEWING:
            // are we done?
            bool slewing;
            if (driver.is_slewing(&slewing) && !slewing)
            {
                LOG_INFO("Slew complete, tracking...");
                SetTrackEnabled(true);

                // update ra offset
                double raoffset = targetRA - currentRA + SlewOffsetRa;
                if (raoffset > 0.0 || raoffset < 10.0 / 3600.0)
                {
                    // average last two values
                    SlewOffsetRa = SlewOffsetRa > 0 ? (SlewOffsetRa + raoffset) / 2 : raoffset;

                    LOGF_DEBUG("raoffset %4.1f, SlewOffsetRa %4.1f arcsec", raoffset * 3600 * 15, SlewOffsetRa * 3600 * 15);
                }
            }
            break;

        case SCOPE_PARKING:
            // are we done?
            if (driver.is_slewing(&slewing) && !slewing)
            {
                if (driver.set_track_mode(CTM_OFF))
                    LOG_DEBUG("Mount tracking is off.");

                SetParked(true);


Read More...