Write a function to merge overlapping maintenance windows for a fleet of drones and return the minimum number of non-overlapping intervals.
Each window is represented as [start, end], with start <= end. Windows that touch or overlap, meaning next_start <= current_end, belong to the same merged interval. Return an integer count. The input may be unsorted.
Function signature: def count_non_overlapping_windows(windows):
def count_non_overlapping_windows(windows):