CustomFixedUpdate

Description
This helper class does something similar to what Unity does behind the scenes for FixedUpdate. It allows you to "create" as many FixedUpdate callbacks you like, each with it's own rate. You can create callbacks that run 10 times per second or 10000 times per second, independent from the visual Update rate and independent from Unity's FixedUpdate.

MaxAllowedTimeStep
The "MaxAllowedTimeStep" works similar to Unity's Time.maximumDeltaTime, however by default it's disabled (set to 0). Keep in mind that Unity will already limit deltaTime to maximumDeltaTime which is 1/3 by default. If a frame takes longer than these 0.3333 seconds, Unity will clamp the deltaTime to that value so you're not get caught in a "downward spiral".

MaxAllowedTimeStep on the other hand only monitors it's own callback to ensure the (real) time doesn't exeed this value during one "update". if it does, it simply terminates the update without calling all required callbacks.

Update / Update(dt)
You have to call Update to actually invoke the callback(s). Usually you would call it once per frame (inside Update of a MonoBehaviour for example). You can pass a custom "deltaTime" to the method, if omitted Time.deltaTime is used.

OnFixedUpdateCallback
When you create an instance of the CustomFixedUpdate class, you have to provide a callback function which will be called at the desired rate. The callback has the "fixedDeltaTime" as parameter.

Examples
Some constructor variants:

An example with custom delta time: