What index can I create to help a query using multiple datetime columns and datetime functions in its where clause?
I think you can benefit from rewriting this query first, plunking it into a TVF and adding a non-clustered index on ValidFrom and DateEffective.

create nonclustered index ix_networks_validfrom_dateeffective
    on dbo.Networks (ValidFron, DateEffective)
    include (Id, Descriptor);
go

create function dbo.ValidNetworks (
    @dt datetimeoffset(7)
)
returns table
as 
    return (
        with networks as (
            select 
                Id
                ,Descriptor
                ,ValidFrom
                ,DateEffective
                ,isnull(ValidUntil, dateadd(day, 1, @dt)) as ValidUntil
                ,isnull(DateExpired, dateadd(day, 1, @dt)) as DateExpired
            from 
                dbo.Networks
        )

        select
            Id
            ,Descriptor
        from
            networks
        where
            ValidFrom &lt;= @dt
            and DateEffective &lt;= @dt
            and ValidUntil &gt; @dt
            and DateExpired &gt; @dt
    );


You could also create computed columns for ValidUntil and DateExpired and eliminate the CTE from the TVF.

I would also be curious to see this split into two separate queries and union'd. Whereby in both queries you filter on ValidFrom and DateEffective. In one you filter for null values in ValidUntil and DateExpired, and the other compare against the @dt value.