Found a bs<->bs manual sync issue. Manual connections were not allowed to sync unless there were also outgoing connections, because the block chaser was disabled with zero outgoing connections (same with inbound connections when outbound is zero).
(edited)