Async Void Test Fixes

Found some cases where we had `async void` methods which means the tests weren't being run.

Also found cases where we called a lambda with `async` but the method didn't accept `Func<Task>` so it didn't await on the lambda. Most of these were in the form of `Assert.DoesNotThrow` which is kind of pointless since we could just call the method and if it doesn't throw, the test will pass anyways.